场景:做数据计算,传入(int) a,b 返回结果c(可以为一个或多个结果)
注意:该方法实质上是获取python的输出(print)的值,与python中方法定义的返回值无关
python脚本写法:
该py文件可以理解为返回了两个值,----print方法使用了两次,输出的两个即为java中获得的值
import sys
num1=sys.argv[1]
num2=sys.argv[2]
def add(num1,num2):
all= int(num1) + int(num2)
print(all)
print('success')
add(num1,num2);
java中main方法调用,如果是方法互相的调用,则将其中的ArrayList对象返回即可
public static void main(String[] args) throws Exception{
//python文件的路径
String path="C:\\XXX\\Desktop\\add.py";
//数组顺序依次为,py 即本地python的执行命令,路径,参数1,参数2,参数3.....
String[] cmdArr = new String[] {"py", path,"10","20"};
Process process = Runtime.getRuntime().exec(cmdArr);
InputStream is = process.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(is));
String line = null;
ArrayList<String> strings = new ArrayList<>();
while ((line = in.readLine()) != null) {
System.out.println(line);
strings.add(line);
}
in.close();
process.waitFor();
}
运行结果如下,