从java类运行Jython代码

从java类运行Jython代码,java,jython,Java,Jython,我正在处理可执行的jar文件,该文件将运行jython文件以获得一些结果。 我尝试通过这种技术调用jython文件 从java类运行.bat文件,该.bat文件将调用Jython文件 Runtime rt = Runtime.getRuntime(); Process process = rt.exec(new String[] { "cmd.exe", "/c", "D:\\calljython.bat " + parameters + "" }); jython文件运行后,我通过Input

我正在处理可执行的jar文件,该文件将运行jython文件以获得一些结果。 我尝试通过这种技术调用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文件中要使用的参数并获得结果。

尝试调试代码,确保调用bat文件或Jython并返回结果。bat文件应该和您正在执行的jar文件一起放置(相同的层次结构)


失败是什么?你们有stacktrace吗?从可执行jar中,我找不到stacktrace。根据逻辑,它需要一些输入,然后什么也不会发生。我的建议是,要么放日志语句,要么打印语句,然后找出真正发生的事情,这样会更容易。打印要执行的命令。Process.waitFor()返回代码等。如何在可执行jar文件中添加日志?我尝试了log4j,但没有成功。然后将System.out.println()放入。您可以将log4j放入可执行jar中。您只需要在MANIFEST.MF的classpath元素内部或在系统类路径中指定log4j
Runtime rt = Runtime.getRuntime();
Process process = rt.exec(new String[] { "cmd.exe", "/c", "calljython.bat " + parameters + "" });