2013-03-28 67 views
0

我正在研究将运行jython文件以获取某些结果的可执行jar文件。 我试过用这种技术调用jython文件。从java类运行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但在这种情况下也面临问题。

我想要做的是:在Jython的文件中使用

从Java运行Jython代码与参数一起,并得到结果。

+0

什么是失败?你有没有任何堆栈跟踪? – shazin 2013-03-28 06:34:27

+0

从可执行jar我无法获得任何堆栈跟踪。它根据逻辑需要一些输入,然后没有任何反应。 – 2013-03-28 06:36:58

+0

我的建议是把日志或打印语句,并找到真正发生的事情,这样会更容易。打印要执行的命令。 Process.waitFor()返回代码等。 – shazin 2013-03-28 06:40:21

回答

0

尝试调试代码并确保bat文件或jython被调用并返回结果。 bat文件应该与你正在执行的jar文件一致(相同的层次结构)。

Runtime rt = Runtime.getRuntime(); 
Process process = rt.exec(new String[] { "cmd.exe", "/c", "calljython.bat " + parameters + "" });