我正在尝试运行一个 exe 文件,同时为其设置一些参数,如下所示:
myExePath -ini myIniPath -x myConfigFilePath
When I run it from the command line it works perfectly. But when I try running it from my Java code the process starts but after a while is not responding anymore so I have to forcibly close it. I am using this Java code:
List<String> parameters = new ArrayList<String>();
parameters.add(myexePath);
parameters.add("-ini ");
parameters.add(myIniPath);
parameters.add("-x ");
parameters.add(myConfigPath
ProcessBuilder builder = new ProcessBuilder(parameters);
Process process = builder.start();
try {
process.waitFor();
} catch (InterruptedException e) {
System.err.println("Process was interrupted");
}
知道我做错了什么吗?
最佳答案
exe 是否使用 stdout、stderr、stdin?您应该始终阅读它们或关闭它们。根据实现和缓冲区大小,不读取它们可能会导致阻塞。
关于java - 无法使用 Java 中的 ProcessBuilder 运行 exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9017740/