【发布时间】:2013-11-19 11:24:10
【问题描述】:
我处于一个非常奇怪的位置(从我的 java 新手的角度来看):
使用 Eclipse 我编写了一个“java 程序”(一些带有类的 .java 文件),它基本上(批量)读取文本 *.csv 文件,“评估”其内容,并将结果写入 * _out.csv 文本文件。要找到输入文件,它使用“文件选择器”(从此处获取示例:http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html)
我调试了所有代码,并且使用调试器可以正常工作。
-
我运行了代码(主类,它依次调用所有其他类)并且它可以工作,在 Eclipse 中。
我将所有项目的内容导出到一个“可运行的 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 之外的其他东西(幸运的是它运行了),所以没有通常的开发人员工具、实用程序和其他有用的东西。
【问题讨论】:
-
看看 Lo4j,对于 MsgBox 样式的消息,请使用 JOptionPane。您的程序在 Eclipse 之外无法正常运行的原因可能是您无权(管理员?)在此特定位置读/写,或者您的输出位于不同的文件夹中?
-
应该是 Log4j,而不是 Lo4j。 logging.apache.org/log4j/2.0
标签: java eclipse debugging jar runtime