用Eclipse做远程调试
2016-09-09 11:11
134 查看
在服务器端做java开发时,可能需要在服务器上装一个eclipse再做调试。这种方法有可能受到机器性能或者网速的影响,响应速度较慢而且受限。看了一些介绍eclipse远程调试java的文章,总结出一个比较容易的方式。
首先,本地的eclipse上要有服务器端部署的一模一样的项目。必须一模一样,精确到每一行。否则调试的时候会出现代码错位的问题。
随便建了一个项目RemoteTest,只有一个java文件:
在服务器端,用eclipse。右键单击 Java 项目,选择 Export,然后选择 Java,最后选择 JAR file 或 Runnable JAR file 导出项目,jar包就会出现在指定的位置。java源代码和应用程序必须匹配,否则无法正常调试。 我打的jar包名称是remote.jar。
然后,在打好的jar包目录下运行下面的语句:
-Xdebug :启用调试特性。
-Xrunjdwp:在目标 VM 中加载 JDWP(Java Platform Debugger Architecture)实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。子选项如下:
transport:通常使用套接字传输
server:如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。这里是开8765端口(选一个本机没有使用的端口)来监听。
执行以后,显示:Listening for transport dt_socket at address: 8765 即开始监听8765端口的连接。
在本地的eclipse上,打开相同的工程,在第一行打印的位置设置一个断点。点击debug,然后点击debug configurations进行设置:
双击最下面的Remote Java Application,name可以任意设置。Project选择我们已经载入的RemoteTest,连接类型用默认的就可以了。Host填远程服务器的ip,端口就填之前在服务器端设置的监听端口8765。点击apply,再点击debug,就可以进入断点进行远程调试了。
在本地逐步运行,先运行第一个打印,箭头指向下一句:
远端服务器的控制台输出:
每运行一句,远端服务器的控制台作相应输出。
程序结束后,服务器端自动退出端口占用:
首先,本地的eclipse上要有服务器端部署的一模一样的项目。必须一模一样,精确到每一行。否则调试的时候会出现代码错位的问题。
随便建了一个项目RemoteTest,只有一个java文件:
public class remote { public static void main(String[] args) { System.out.println("Remote debug test1."); System.out.println("Remote debug test2."); System.out.println("Remote debug test3."); } }然后把项目代码复制到本地的eclipse上。拿这个项目作为调试的目标。
在服务器端,用eclipse。右键单击 Java 项目,选择 Export,然后选择 Java,最后选择 JAR file 或 Runnable JAR file 导出项目,jar包就会出现在指定的位置。java源代码和应用程序必须匹配,否则无法正常调试。 我打的jar包名称是remote.jar。
然后,在打好的jar包目录下运行下面的语句:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765 -jar remote.jar其中:
-Xdebug :启用调试特性。
-Xrunjdwp:在目标 VM 中加载 JDWP(Java Platform Debugger Architecture)实现。它通过传输和 JDWP 协议与独立的调试器应用程序通信。子选项如下:
transport:通常使用套接字传输
server:如果值为 y,目标应用程序监听将要连接的调试器应用程序。否则,它将连接到特定地址上的调试器应用程序。这里是开8765端口(选一个本机没有使用的端口)来监听。
执行以后,显示:Listening for transport dt_socket at address: 8765 即开始监听8765端口的连接。
在本地的eclipse上,打开相同的工程,在第一行打印的位置设置一个断点。点击debug,然后点击debug configurations进行设置:
双击最下面的Remote Java Application,name可以任意设置。Project选择我们已经载入的RemoteTest,连接类型用默认的就可以了。Host填远程服务器的ip,端口就填之前在服务器端设置的监听端口8765。点击apply,再点击debug,就可以进入断点进行远程调试了。
在本地逐步运行,先运行第一个打印,箭头指向下一句:
远端服务器的控制台输出:
每运行一句,远端服务器的控制台作相应输出。
程序结束后,服务器端自动退出端口占用:
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- Linux 自检和 SystemTap
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序