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

How to call Python script from a Java JAR file

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

模拟器界面是用JavaSwing写的。 solver/engine写成Python.

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

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

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

非常感谢, 威廉

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

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

或者这样:

ScriptEngine python = new ScriptEngineManager().getEngineByName("python");
python.eval(stringHere); # script engine runs code
  • 第 1 部分:(导入 .jar 文件作为 Eclipse 中的库)

您为 Eclipse 创建了一个新项目(name:Project1) 当您 打开 它时,您会看到 JRE 系统库 [java 版本 something]

1.右键单击 JRE 系统库

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

3。可以看到(右上角按钮[添加罐子添加 外部 罐子]

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

*首先复制(或移动)项目里面的Python.jar((例子):项目1)

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

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

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

让我知道这是否适合你...

第 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