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


舉例有一個Python腳本叫test.py,現在想要在Java里調用這個腳本。假定這個test.py里面使用了拓展的包,使得pythoninterpreter之類內嵌的編譯器無法使用,那么只能采用java調用控制台進程,即 Runtime.getRuntime().exec(),來運行這個python腳本。在windows下運行這個程序,假如是參考了一些百度來的被轉載了無數遍的文章,很有可能運行結果是根本沒有執行這個腳本。經過測試,在java中執行如下代碼可以成功運行test.py文件:

 

[java]  view plain  copy
 
  1. <pre name="code" class="java">Process proc = Runtime.getRuntime().exec("cmd /c python "+filepath+"test.py");    //filepath是test.py的地址。可以取相對地址,以項目所在地址為根目錄  
  2.         proc.waitFor();  
[java]  view plain  copy
 
  1.   

在使用 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