使用Runtime.getRuntime().exec()在java中調用python腳本


舉例有一個Python腳本叫test.py,現在想要在Java里調用這個腳本。假定這個test.py里面使用了拓展的包,使得pythoninterpreter之類內嵌的編譯器無法使用,那么只能采用java調用控制台進程,即 Runtime.getRuntime().exec(),來運行這個python腳本。

在windows下運行這個程序,假如是參考了一些百度來的被轉載了無數遍的文章,很有可能運行結果是根本沒有執行這個腳本。經過測試,在java中執行如下代碼可以成功運行test.py文件:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Process proc = Runtime.getRuntime().exec( "cmd /c python " + filepath + "test.py" );  // filepath是test.py的地址。可以取相對地址,以項目所在地址為根目錄
proc.waitFor();

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在使用 cmd /c 時不會彈出python輸出窗口,可以使用 cmd /k start 前綴以彈出一個新的控制台窗口並顯示python輸出


cmd /c dir 是執行完dir命令后關閉命令窗口。
cmd /k dir 是執行完dir命令后不關閉命令窗口。

cmd /c start dir 會打開一個新窗口后執行dir指令,原窗口會關閉。
cmd /k start dir 會打開一個新窗口后執行dir指令,原窗口不會關閉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM