当我尝试使用此代码时,它似乎已执行但未执行。
进程构建器可以找到可执行文件。系统写入println命令。
我找到了一些示例代码,但我的可执行文件与java文件不在同一个文件夹中。
private static void executeOneFile(String folderPath) {
Process p;
String exePath = path + "\\" + folderPath + "\\";
try {
p = new ProcessBuilder(exePath + "myFile.exe").start();
//p = Runtime.getRuntime().exec("myFile.exe", null , new File(exePath) );
System.out.println("p is running");
p.waitFor();
System.out.println("p ended");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:1)
上述代码存在以下几个问题:
stdin
关闭孩子的p.getOutputStream().close()
以确保它不会等待输入。