1.調(diào)用python程序不需要傳參只需獲得結(jié)果時(shí):
直接新建java文件,然后新建Process對(duì)象調(diào)用python程序:
public static void main(String[] args) {
try{
Process pr = Runtime.getRuntime().exec("python D:\\a.py");//如果python沒有配置到環(huán)境變量中腕侄,則需使用python的完整路徑
//獲取python文件運(yùn)行后的輸出
BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
pr.waitFor();
System.out.println("over");
} catch (Exception e){
e.printStackTrace();
}
}
a.py中的代碼為:
#coding=utf-8
import numpy as np
x=np.array([1,2,3])
print(x)
2.python程序需要參數(shù)才能運(yùn)行:
a.py中的代碼:
#coding=utf-8
import sys
if __name__=='__main__':
? ? para1=sys.argv[1]
? ? para2=sys.argv[2]
? ? print(para1)
? ? print(para2)
#sys.argv 用來獲取命令行參數(shù)
java程序中扎附,process直接執(zhí)行帶參數(shù)的python指令败许,其他的與1中相同
Process pr = Runtime.getRuntime().exec("python D:\\Code\\a.py input1? input2");
需要注意的是肌蜻,python代碼中sys.argv[1]獲取的是input1谋旦,sys.argv[2]獲取的是input2绊含,sys.argv[0]獲取的則是D:\\Code\\a.py