java - 如何在运行时调试 jar?

标签 java eclipse debugging jar runtime

我处于一个非常奇怪的位置(从我的 java 新手的角度来看):

  1. 我使用 Eclipse 编写了一个“java 程序”(一些带有类的 .java 文件),它基本上(批量)读取文本 *.csv 文件,“评估”其内容,并将结果写入 * _out.csv 文本文件。要定位输入文件,它使用“文件选择器”(从此处获取示例:http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html)

  2. 我调试了所有代码,并且使用调试器,它可以工作

  3. 我运行了代码(主类,它依次调用所有其他类)并且它可以工作在 Eclipse 中

  4. 我将所有项目的内容导出到一个“可运行的 jar”文件中。

请注意,除了文件选择器,这主要是一个读写的“批处理”:几乎没有用户界面。在进入 Eclipse 时,我使用类似“if(debug) System.out.print("something to print");” 提供设置“debug”之类的东西显示了一些内部结果调试时为 TRUE,生产环境中为 FALSE。

以上所有工作!

现在,启动可运行的 jar(在 Win/XP 中双击 jar 文件),我可以看到文件选择器,我可以使用它,但是在选择输入文件之后。 .. 仅此而已:(没有用户界面)我不知道文件是否被读取,我没有看到任何生成的输出文件,我什至没有“控制台”可以列出任何中间调试消息,以查看 jar 是否正常工作,即使我在调试变量设置为 TRUE 的情况下重新导出它。

有没有办法“运行时调试”正在运行的 jar(如 VB 的 MsgBox 或其他)?我可以“启用”或查看某种“日志文件”? (显然,由于我的 jar 没有写入结果文件,我也无法尝试写入 *.log) 我还必须说,我只是无法在我的机器上安装除 Eclipse 之外的其他东西(幸运的是它运行了),所以没有通常的开发人员工具、实用程序和其他有用的东西。

最佳答案

http://www.eclipsezone.com/eclipse/forums/t53459.html

基本上运行它:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

应用程序在启动时会等待,直到您从其他来源连接。

所以 CLI 命令将是:

java -jar yourJarFileName.jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

关于java - 如何在运行时调试 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19842322/

相关文章:

Oracle Java SE 8u20 JDK 中泛型静态方法调用的 Java 泛型不兼容类型编译错误

java - 如何将基于 Maven 的项目包含到我的非 Maven 项目中

java - 避免运行生成超长命令行的 java 测试时出现错误?

javascript - jQuery 选择器调试器

debugging - 如何将 HTC android 手机连接到 pc 作为调试设备

java - 带屏障的 Spring TaskExecutor

java - java中默认的新线程名称是如何给出的?

java - 为什么java没有确定性析构函数?

java - Maven:缺少 Artifact 急板

debugging - 如何在程序中放入 Perl 6 REPL?