2012-12-13 71 views
3

我有一個java web開發項目,並且想調用一個python腳本在後臺運行,然後繼續使用java。使用runtime.getruntime.exec從Java調用python腳本

String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && python script.py"; 
Process p = Runtime.getRuntime().exec(command); 

當我打電話給我時,似乎沒有什麼事情發生,但是當腳本訪問其目錄中的文件時,我需要先改變目錄。

感謝您的幫助

編輯:

正確答案是加入開始,這是我編輯的代碼

String command = "cmd.exe /c cd "C:\\path\\to\\py\\" && start python script.py"; 
Process p = Runtime.getRuntime().exec(command); 
+0

python腳本可以在jython下運行嗎?如果是這樣從java調用它並運行一個線程 – Mark

回答

1

你配置環境以支持「可執行」的Python腳本?
如果沒有,你應該這樣稱呼它:

String command = "cmd.exe /c start python path\to\script\script.py"; 
Process p = Runtime.getRuntime().exec(command); 

start命令運行相應的可執行(在這種情況下,Python解釋器),其提供的參數(在這種情況下,腳本本身)。

+0

謝謝!工作過一種享受! – FredoAF

3

與其使用cmd來更改目錄,您可以從Java端設置進程的工作目錄。例如

ProcessBuilder pb = new ProcessBuilder("python", "script.py"); 
pb.directory(new File("C:\\path\\to\\py")); 
Process p = pb.start();