py文件:
from sys import argv
import sys
# 防止中文乱码
import io
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
def testJP(a):
print("调用成功:" + a)
a = argv[1] # 第一个参数是路径,第二个才是可以使用的参数
testJP(a)
Java文件:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
* 使用Runtime调用
* python3.7位置: "C:\Users\qq201\Anaconda3\python.exe"
*
* String[] arg = new String[]{"解释器的位置(本地项目可以直接使用python)", "python文件位置", 参数}; 参数可以省略
*
* */
public class Demo1 {
public static void main(String[] args) throws InterruptedException {
String reselt = "";
String[] arg = { "C:\\Users\\qq201\\Anaconda3\\python.exe", "Exercise1\\src\\main\\java\\python\\testJpython1.py", "你好"};
try {
Process proc = Runtime.getRuntime().exec(arg);
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
reselt = in.readLine();
in.close();
int i = proc.waitFor(); //返回0表示执行成功,返回1表示执行失败,返回2表示没有此文件或者目录
System.out.println(i);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(reselt);
}
}
运行结果: