Eclipse远程调试

原文章地址:http://tech.it168.com/a2012/0326/1329/000001329904_all.shtml  向原作者致敬 

在软件开发中,调试是不可或缺的一个环节,它可以帮助开发人员提高效率,节省开发时间。在我认为,本地调试是最优选择,通常情况下,当无法实现本地调试时,我们才会考虑远程调试。
  有些项目是运行在Linux 操作系统上,而我们大多数项目是在Windows 平台上完成开发的。特别是在投资银行领域,很多电子交易程序运行在Linux 服务器上,这会让开发过程显得较为繁琐,因为我们没法在本地的开发环境中运行这些代码。
  有时候无论是出于开发还是调试的考虑,我们可以让项目运行在Windows 平台上,但有时候,一些不可控因素,比如您的项目需要提供开发库的平台,或者需要一些Linux模块,Windows平台上无法满足这些需求,或者您的项目规模太大,无法在Windows 平台上成功运行,由于项目过度依赖一些系统,没法在Windows 开发平台中创建相同的运行环境。
  这种情况下,我的解决方法是借助模拟的对象来测试项目。当然,有时候通过线程单独来运行应用程序模块并不见得是最好的解决方案,特别是您需要在运行时环境下通过调试项目来查找一些子问题,这些方法就会显得不太实用。
在Eclipse IDE中远程调试Java应用程序
  Eclipse为我们提供了最有用的功能,称为“远程调试”。 借助于远程调试,您可以在Windows 平台上调试Linux的运行情况,为了提高开发效率,非常有必要了解清楚如何安装远程调试,如何在Eclipse中实现远程调试。
  如何在Eclipse中安装远程调试
  1)在Eclipse中安装Java项目
  2) 选择项目,在“Run”菜单选项下选择“Debug Configurations” 在Eclipse IDE中远程调试Java应用程序
  
  3) 调试配置窗口将会弹出,选择左边的“Remote Java Application”图标,右键选择“New”。 在Eclipse IDE中远程调试Java应用程序
 4) 点击“New”以后,Eclipse会为您选中的项目创建远程Java应用配置。接下来的一步是为 远程调试安装主机和端口
在Eclipse IDE中远程调试Java应用程序
  5) 现在输入主机名和端口,如果你想从Eclipse中关闭运行在Linux平台上的 Java应用程序,请选中"Allow termination of remote VM”复选框。
  6) 在调试之前,确保设置好Java进程的各项调试信息,同时 确保在同一个主机和端口上监听Java进程,否则Eclipse无法正常建立连系。
  7) 点击“Debug”开始调试主机和端口。
  8)您也可以在"Remote Java Application” 中,"Debug Configurations"菜单下选中您的项目,然后点击"DEBUG"。

  为了远程调试一个Java应用程序,确保JVM的调试选项如下:
  java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar stockTradingGUI.jar
  使用Java Debug Wire Protocol (jdwp) protocol ,我们可以让Java应用程序stockTradingGUI进入调试模式,监听端口为8001。suspend=y 时,Eclipse 将应用程序连接到指定调试端口后,应用程序才开始运行。
   有一点非常重要,先运行应用程序,然后连接它,否则Eclipse会抛出异常"Failed to connect to remote VM. Connection refused”.
  提示一:在JVM DEBUG参数中,有一个参数叫"suspend",它的取值有两个,“y”或者“n”,如果您刚开始就想调试的话,将参数设置为"suspend=y",这样Eclipse会远程连接Java应用程序。
  如果你想先运行项目,然后连接Eclipse,那么可以将参数设置为"suspend=n",这样的话,Java应用程序会正常运行,之后Eclipse会开始远程连接。
  提示二:使用启动脚本输入JVM调试参数,在脚本中使用变量isDebugEnabled或者REMOTE_DEBUG_PORT,当你想远程调试Java应用程序的时候,可以将这个变量导出。整个操作过程非常简单,只需要一次性的安装即可。
  提示三:如果你得到错误提示"Failed to connect to remote VM. Connection refused"或者"Connection refused: connect",那么可能出现的原因有两种可能。第一是您的Java项目没有运行在远程主机上,第二是输入端口和主机名有误,验证成功后,可以填写完整的主机名。
  提示四:您也要确保本地Eclipse和远程Eclipse运行的是相同的代码库。使用调试选项"-g"可以编译代码,Eclipse可以轻松搜集调试信息,比如本地变量的调试信息,默认情况下,使用调试选项“-g”,类文件可能更大,因为它可能会包含一些调试信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值