我有一个简单的脚本,我想从Java代码中调用它。该脚本无法正常运行。
脚本非常简单: mkdir 0000000;
public static void main(String[] args) throws Exception{
String path = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe";
String command = "C:\\test\\test.ps1";
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(path + " " + command);
proc.destroy();
}
未创建目录“ 0000000”。我使用的是JDK 7,Windows 10。
任何建议将不胜感激。
答案 0 :(得分:1)
我更改了以下代码,终于成功了!
public static void main(String[] args) throws Exception{
String path = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe";
String command1 ="cmd /c \"cd C:\\test && " + path + " /c .\\test.ps1\"";
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(command1);
Thread.sleep(2000);
proc.destroy();
}
答案 1 :(得分:1)
('table_id', table_id_value)
异步运行该进程,因此后续的exec()
会立即终止它,然后再执行任何操作。如果从交互式外壳运行程序,则只需删除proc.destroy()
即可缓解该问题,但要真正解决该问题,您需要等待外部过程完成。您可能还想捕获proc.destroy()
(或exec()
)可能引发的异常。
waitFor()