2017-04-24 107 views
1

叫Python腳本輸出的錯誤,我有一個調用的Python腳本一些Java代碼:獲得來自Java的

String[] cmd = new String[]{"python", "path/to/script", "arg1", "arg2"} 
Runtime rt = Runtime.getRuntime(); 
Process pr = rt.exec(cmd); 

只要Python腳本不包含錯誤它工作正常,但只要它是休息。但是,如果我要直接從命令行運行Python腳本,則不會收到錯誤消息,因此我必須搜索自己哪裏出錯。效率不高。

是否可以通過向我的Java代碼添加一些行來獲取此消息?

+0

這解決了我的問題:'proc.getErrorStream()'是我正在尋找的。如果你寫你的評論作爲答案,我可以接受它。 (和打破腳本,我無法找到的錯誤:我在'elif'後忘了冒號......) – rdv

+0

*「我在'elif'之後忘了冒號......)」*那些類型的錯誤困擾着我們所有人。有錯誤輸出是件好事。 –

回答

1

請參閱When Runtime.exec() won't瞭解如何正確創建和處理流程。然後忽略它指的是exec並使用ProcessBuilder來創建該過程。還要將String arg分解爲String[] args以解釋包含空格字符的路徑。

現在就手頭問題的具體情況,它聽起來像是錯誤流的輸出丟失了。如您所述,調用proc.getErrorStream()並處理該輸出應符合要求。