java - 无法使用 Java 中的 ProcessBuilder 运行 exe 文件

标签 java processbuilder

我正在尝试运行一个 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/

相关文章:

Java ProcessBuilder 和 Windows 系统变量

java - 如何使用 Groovy 或 Java 捕获 telnet 提示符?

java - Jackson - 对象内部属性的自定义序列化器

java - Spring Integration with JPA 返回错误::查询有参数,但未提供参数源

Java 无法停止 Process Builder 线程

java - 为什么这段java代码会卡住?

java - ProcessBuilder 或 Runtime 类从哪里获取环境变量?

java - 在 super 调用Java中调用父的内部类

java - 如何将 <form :select multiple ="true" . .. > 绑定(bind)到命令对象(Spring MVC)中的枚举列表?

java - 编辑/更新java spring