eclipse:如何将Java程序调试为.jar文件?

时间:2009-11-13 22:19:35

标签: java eclipse jar

我使用ant在Eclipse中创建.jar文件。效果很好。

我正在处理一个.jar文件,希望代码位于.jar文件中(它在.jar文件所在的目录中查找.properties文件) - 标准Eclipse“Run”和“Debug”菜单执行指定Java类的main()方法......但它们是从包含已编译类文件的目录执行的,而不是jar文件。有没有办法改变这种行为,所以Eclipse从相应的.jar文件运行代码?

(我现在的解决方法是在外部运行.jar文件,并根据Dave Ray's answer to one of my other questions暂停等待调试器。)

4 个答案:

答案 0 :(得分:60)

您可以通过像这样运行jar来使用远程调试

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar yourJar.jar

然后从IDE连接到该端口

答案 1 :(得分:30)

是的,您可以创建自定义“Run Configuration”:
即,一个“Java Application”,其中:

  • Classpath标签从其默认内容(.class目录)清空并添加了jar
  • Source标签及其默认内容(应引用项目的src目录)

可以运行或调试一个这样的配置。

http://www.kermeta.org/docs/html.chunked/KerMeta-UI-UserGuide/KerMeta-UI-UserGuide_figures/KerMeta_RunCommandLine_classpath.png

使用jar作为用户条目的自定义配置示例

答案 2 :(得分:5)

我刚刚找到以下链接,它描述了远程调试Java jar的整个过程。

Debug Java applications remotely with Eclipse

主要部分是:

目标虚拟机充当调试服务器

  

java -Xdebug -Xrunjdwp:transport = dt_socket,server = y,address =“8000”-jar        Test.jar的

目标虚拟机充当调试客户端

  

java -Xdebug -Xrunjdwp:transport = dt_socket,address = 127.0.0.1:8000,suspend = y        -jar test.jar

根据您运行目标虚拟机,客户端或服务器的方式,您必须以不同方式配置Eclipse。

如果您将目标虚拟机启动为客户端

,则

Eclipse配置

enter image description here

Eclipse配置,如果您将目标虚拟机启动为服务器

enter image description here

该文章还简要介绍了该主题。

答案 3 :(得分:-1)

我会尝试使代码更健壮,使属性文件位置可配置,或者只是让它从类路径加载它。然后,您可以直接将属性文件添加到eclipse类路径中。问题被淘汰了!