我们很多项目都需要放到服务器上运行,但是服务器上又无法在运行时进行调试,因此远程DEBUG就出来了,它是JVM就提供了如下的的错误处理方式:
- 1.JVMTI定义了虚拟机应该提供的调试服务,包括调试信息(Information譬如栈信息)、调试行为(Action譬如客户端设置一个断点)和通知(Notification譬如到达某个断点时通知客户端),该接口由虚拟机实现者提供实现,并结合在虚拟机中
- 2.JDWP定义调试服务和调试器之间的通信,包括定义调试信息格式和调试请求机制
- 3.JDI在语言的高层次上定义了调试者可以使用的调试接口以能方便地与远程的调试服务进行交互,Java语言实现,调试器实现者可直接使用该接口访问虚拟机调试服务。 java调试工具jdb,就是sun公司提供的JDI实现。eclipse IDE,它的两个插件org.eclipse.jdt.debug.ui和org.eclipse.jdt.debug与其强大的调试功能密切相关,其中前者是eclipse调试工具界面的实现,而后者则是JDI的一个完整实现。
下面就来说说如何实现远程DEBUG(特别注意我的远程服务器是Ubuntu和Tomcat8):
服务器下:
1、修改服务器tomcat下的catalina.sh脚本,找到 “JPDA_ADDRESS="localhost:8000" ”
2、去掉localhost(因为localhost代表只能本机访问),修改为 “ JPDA_ADDRESS="8888" ” ,保存退出
3、返回到tomcat下的bin目录,执行
./catalina.sh jpda start
4、关闭防火墙
ufw disable
本机Eclipse:
1、eclipse右击项目-->DEBUG AS -->DEBUG Configurations ---> Remote Java Application
2、在如下界面填入你的ip和端口(我在上边设置的是8888,你可以根据自己的修改)
3、完成