如何使用java調用powershell命令。運行powershell命令時出錯
try {
ExecuteWatchdog watchdog = new ExecuteWatchdog(20000);
Process powerShellProcess = Runtime.getRuntime().exec(
"powershell.exe \"D:\\testscript.ps1\"");
if (watchdog != null) {
watchdog.start(powerShellProcess);
}
BufferedReader stdInput = new BufferedReader(new InputStreamReader(
powerShellProcess.getInputStream()));
String line;
System.out.println("Output :");
while ((line = stdInput.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
注:我映射正確的路徑。
我試着用上面的代碼,但它給像
java.io.IOException: Cannot run program "powershell.exe": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at com.powershell.PsJava.main(PsJava.java:17))
任何錯誤請你在這方面的幫助。
1)閱讀(並實現)*所有* [當Runtime.exec()不會](http://www.javaworld.com/jw-12-2000/jw-1229-traps。 HTML)。這可能會解決問題。如果不是,它應該提供更多關於失敗原因的信息。然後忽略它引用'exec'並使用'ProcessBuilder'構建'Process'。還要將'String arg'分解爲'String [] args'來解釋其本身包含空格的參數。 2)標題中不需要添加主標籤。 –
它只是找不到文件。將''powershell.exe''改爲'「C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe」' – Cole9350
謝謝你@ Cole9350,問題解決了。 – Sathiya