【发布时间】:2013-03-28 06:30:50
【问题描述】:
我正在研究将运行 jython 文件以获得一些结果的可执行 jar 文件。 我尝试通过这种技术调用 jython 文件。
从java类运行.bat文件,.bat文件将调用Jython文件。
Runtime rt = Runtime.getRuntime();
Process process = rt.exec(new String[] { "cmd.exe", "/c", "D:\\calljython.bat " + parameters + "" });
jython 文件运行后,我通过InputStream 读取输出并获得结果。
这种技术在从 Eclipse 运行时可以使用文件,但在创建并运行可执行 jar 时会失败。
我使用的另一件事是PythonInterpreter,但在这种情况下也面临问题。
我想做的是:
从 java 中运行 Jython 代码以及要在 Jython 文件中使用的参数并获取结果。
【问题讨论】:
-
什么是失败?你有任何堆栈跟踪吗?
-
从可执行 jar 中我无法获得任何堆栈跟踪。它按照逻辑需要一些输入,然后什么都没有发生。
-
我的建议是放置日志或打印语句并找出真正发生的事情,这样会更容易。打印要执行的命令。 Process.waitFor() 返回码等
-
如何在可执行jar文件中添加日志?我尝试了 log4j,但它不起作用。
-
然后放入 System.out.println()。您可以将 log4j 放入可执行的 jar 中。您只需要在 MANIFEST.MF 的类路径元素或系统类路径中指定 log4j