java調(diào)用python程序

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容