1
在Linux(Debian的)很好,我可以運行此命令:不能用的ProcessBuilder運行程序,運行命令行
/usr/lib/jvm/jdk1.7.0_21/bin/java -jar ~/myjar.jar ".*"
我試圖用,而不是從一個Java程序運行:
ProcessBuilder pb = new ProcessBuilder(java, "-jar", "~/myjar.jar", "\".*\"");
System.out.println(pb.command());
打印以下,符合市場預期:
[/usr/lib/jvm/jdk1.7.0_21/bin/java, -jar, ~/myjar.jar, ".*"]
不過,我不會從日得到的結果相同e程序(它運行但輸出看起來好像沒有適當考慮".*"
參數)。
任何想法,爲什麼它不工作?
注意:相同的代碼在Windows上正常工作。
不要使用的ProcessBuilder嚴重,因爲它不是穩定的,很容易失敗的命令複雜的輸出如'mvn build'。在可能的情況下使用shell腳本 – Amos 2017-11-12 09:15:50
@Amos只要流程流消耗 - 我不知道你指的是什麼穩定性問題,我會定期使用ProcessBuilder處理大輸出的命令,不會有任何問題。 – assylias 2017-11-12 09:22:37
Hello assylias,早先我們使用ProcessBuilder運行mvn(maven)命令,它通常會卡住,ProcessBuilder永遠停在那裏 – Amos 2017-11-12 09:26:03