1
下面的語句正常工作。這是代碼。的Java進程生成命令錯誤,轉義雙引號
//some code
String wmic_cmd = "Process Call Create";
String wmic2 = " \"cmd /c echo 'Required_Info' %SystemDrive% %SystemRoot% \"";
cmdTokens.add(wmic_cmd);
cmdTokens.add(wmic2);
/*debug and checked the value of cmdTokens array - it was
[wmic, /node:10.0.0.0, /user:Someuser, /password:PWD, Process Call Create, "cmd /c echo 'Required_Info' %SystemDrive% %SystemRoot% "]
*/
ProcessBuilder pb = new ProcessBuilder(cmdTokens.toArray(new String[]{}));
Process proc = pb.start();
當我檢查PROC的錯誤流我得到以下 -
Process Call Create - Alias not found.
這表明了WMIC語法錯誤。因此,在將命令字符串數組發送給進程生成器時發生了某些錯誤。
任何想法??
閱讀(並實現)*所有* [Runtime.exec()不會](http://www.javaworld.com/jw-12-2000/jw-1229-traps.html)的建議* 。這可能會解決問題。如果不是,它應該提供更多關於失敗原因的信息。然後忽略它引用'exec'並(繼續)使用'ProcessBuilder'構建'Process'。還要將'String arg'分解爲'String [] args'來解釋其本身包含空格的參數。 –