如何从Java JAR文件调用Python脚本

时间:2015-01-21 00:19:18

标签: java python jar runtime jython

目前我正在开发一个涉及Java和Python的模拟项目。

模拟器接口是用Java Swing编写的。解算器/引擎是用Python编写的。

我使用Eclipse开发项目。我使用Process和Runtime用一些参数调用Python Script。我在Eclipse中使用pydev来运行Python脚本。

现在,在将项目导出到JAR文件之后,Python代码作为文件夹位于JAR内部。显然,java不再能够在JVM中调用Python脚本了。有没有办法使用JAR调用Python脚本并解析模拟结果?

Jython可能是一个选项,但我试图看看是否有更简单的方法,而无需更改原始Python脚本中的大量代码。

非常感谢, 威廉

2 个答案:

答案 0 :(得分:1)

必须在系统路径中配置Python:

Process p = Runtime.getRuntime().exec("python script.py");

或者这个:

ScriptEngine python = new ScriptEngineManager().getEngineByName("python");
python.eval(stringHere); # script engine runs code

答案 1 :(得分:0)

  • 第1部分 :( 导入 .jar文件作为Eclipse中的库)

为Eclipse创建一个新项目(名称:Project1)  当您打开时,您会看到 JRE系统库[java版本的东西]

1 右键单击 JRE系统库

2 .Go-> 构建路径 - > 配置构建路径

3 。您可以看到( 右上角 按钮[ 添加广告 添加 外部 jars ]

*我建议您选择优先(添加罐子)但是..

*首先复制(或移动)项目中的 Python.jar ((示例):项目1)

*现在您可以使用按钮添加它(添加广告)。

*这样,当你完成项目时,Python.jar将会是  在项目中导入(如果从Eclipse导出为.jar)

..现在你可以调用 Python.jar 的任何方法(将它导入类中) 你想使用并调用它)

如果这对您有用,请告诉我......

第2部分:

  • 运行在eclipse项目中的文件(警告!在将其导出到jar之前):

1.Way(遵循文件路径

 try {
    Runtime.getRuntime().exec("cmd /c start C:/NameOfEclipseProject/Project/src/pack(Package)/script.py");

    } catch (IOException e) { e.printStackTrace(); }

2.i将很快添加它们。(自从我使用它们以来一直试图找到它)​​

  • 将项目导出到jar 后运行脚本(警告!导出到jar后)

检查此问题link