我有一个jar文件有问题,我想调试它。
我在eclipse上创建了应用程序。在开发阶段,我已完成调试但使用源代码。我想调试jar文件以找出错误的原因,即它可能是我的源代码与jar文件或某些jar文件问题不同。
答案 0 :(得分:16)
好像你想远程调试。
使用此命令启动jar:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=y -jar [JAR NAME HERE]
它应该陈述如下:
Listening for transport dt_socket at address : 8001
在eclipse中,创建一个"远程Java应用程序"调试配置。只要您的兴趣项目开放,配置是唯一重要的事情。将您要调试的感兴趣的项目添加到源查找路径,并将端口号设置为java launch命令中配置的地址。
当您连接到启用调试的jar启动时,您的jar将暂停执行并在命中断点时等待调试器输入。只要确保你的jar和你的日食中有相同版本的代码。
答案 1 :(得分:0)
你可以使用java反编译器来实现这种效果。我建议使用jd(http://jd.benow.ca/)。
但是,您还需要为要匹配的行号添加重新排列功能(http://mchr3k.github.io/jdeclipse-realign/)。
当然,只有在jar文件中包含调试信息时,这才有效。