1.在java类中直接执行python语句
准备工作:
创建maven工程,结构如下:到官网https://www.jython.org/download.html下载Jython的jar包或者在maven的pom.xml文件中加入如下代码:
<dependency>java
<groupId>org.python</groupId>
<artifactId>jython-standalone</artifactId>
<version>2.7.0</version>
</dependency>
创建JavaRunPython.java类:
import org.python.util.PythonInterpreter;
public class JavaRunPython {
public static void main(String[] args) {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.exec("a='hello world'; ");
interpreter.exec("print a;");
}
}
2.在java中直接调用python脚本
在本地的D盘创建一个python脚本,文件名字为javaPythonFile.py,文件内容如下:
a = 1
b = 2
print (a + b)
创建JavaPythonFile.java类,内容如下:
import org.python.util.PythonInterpreter;
public class JavaPythonFile {
public static void main(String[] args) {
PythonInterpreter interpreter = new PythonInterpreter();
interpreter.execfile("D:\\javaPythonFile.py");
}
}
输出结果如下:
注意:以上两个方法虽然都可以调用python程序,但是使用Jpython调用的python库不是很多,如果你用以上两个方法调用,而python的程序中使用到第三方库,这时就会报错java ImportError: No module named xxx。遇到这种情况推荐使用下面的方法,即可解决该问题。
3.使用Runtime.getRuntime()执行python脚本文件,推荐使用
为了验证该方法可以运行含有python第三方库的程序,在本地的D盘创建一个python脚本,文件名字为demo1.py,代码如下:
import numpy as np
a = np.arange(12).reshape(3,4)
print(a)
可以看到程序中用到了numpy第三方库,并初始化了一个3×4的一个矩阵。
下面来看看怎么用Runtime.getRuntime()方法来调用python程序并输出该结果,java代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo1 {
public static void main