不带解释器的Java Python

时间:2019-04-16 15:50:07

标签: java python python-3.x

因此,我一直在寻找各种Java软件包,这些软件包允许您通过Java运行python代码。 Jython不处理等效的python 3.6代码。所以基本上,我有用python 3.6编写的代码,并且需要这样做。我需要能够通过Java使用该python代码,而无需使用python解释器。有这样的包裹吗? (请注意,我不会更改python代码,因为这是一个框架,并且通常在python中使用。 我有一个python框架,传统上会通过python 3.6使用python代码。相反,我想通过Java 8代码来利用它。现在,我研究了Jython,但是它不能处理3.6或3.x。我不会从框架中更改python代码。另外,Java软件包应该能够在没有解释器的情况下运行python代码。有这样的事吗? Py4j需要一个python解释器。

3 个答案:

答案 0 :(得分:2)

GraalVM将Python代码编译为Java字节码,并使用graalpython在JVM上运行它,但要注意:

  

此Python实现当前旨在与Python 3.7兼容,但是距离那里还有很长的路要走,任何完全需要任何导入的Python程序很可能会遇到不受支持的情况。至此,Python实现已可供实验和好奇的最终用户使用。

答案 1 :(得分:1)

否,运行Python代码需要使用某些Python解释器或其他工具。

答案 2 :(得分:0)

由于您不会更改它,因此可以将Python转换为可执行文件,并使用Java将其作为新进程生成。

ProcessBuilder pb = new ProcessBuilder("C:\\...\\file.exe", command arguments, ..., ...);
pb.start();

您可以使用文件I / O在Python和Java之间进行通信,这是最简单的解决方案。