ProcessBuilder pb;
Process process;
String command ="shutdown -s";
try {
pb = new ProcessBuilder("cmd.exe", "/C", command)
process = pb.start();
process.waitFor();
if (process.exitValue() == 0) {
//success
} else {
//handle error
}
} catch (Exception e) {
//handle error
}
當我嘗試獲取inputstream並運行該代碼塊進入無限循環時。 然後我改變了上面的代碼。但是,當我運行它獲得1的退出值,並不能關閉系統。Java ProcessBuilder關閉系統錯誤
任何想法?
PS:我不想使用java運行時。
我只是直接在cmd中做了一些測試......它似乎在雙引號內分隔參數。即'cmd> cmd/C「foo.exe arg1 arg2」'被解釋爲'cmd> cmd/C「foo.exe」「arg1」「arg2」'和'cmd> cmd/C「foo.exe」arg1 arg2 「'''相當於'cmd> cmd/C foo.exe」arg1 arg2「'巫婆是一種奇怪的行爲,因爲如果想要將'arg1 agr2'解釋爲包含空格字符的單個參數,他會直觀地寫'cmd > cmd/C「foo.exe \」arg1 arg2 \「」' – A4L 2012-07-27 20:42:03