【问题标题】:Open exe is not working through JavaOpen exe 无法通过 Java 运行
【发布时间】:2015-01-29 00:24:25
【问题描述】:

我正在尝试打开一个可执行文件,并且我的代码编译正常,但仍然无法打开 .exe 并且没有给我错误。这是从我的 swing gui 开始的课程。我错过了什么?

package kioskapplications;

import java.io.IOException;
import java.lang.ProcessBuilder;

public class OpenSSH {
  public static void main(String[] args) throws IOException {

    String folder = "C:\\Program Files (x86)\\Kiosk Applications\\Poderosa\\";
    String exe = "Poderosa.exe";

    ProcessBuilder p = new ProcessBuilder();
    p.command(folder + exe);
    p.start();
  }
}

【问题讨论】:

  • 尝试使用int result = p.waitFor() 并查看命令是否返回退出代码(通常0 以外的任何内容都表示由于某种原因它失败了)。您还应该读取进程输出,因为这有时会导致程序停止(如果未读取输出缓冲区)。您还可以使用ProcessBuilder#directory 将进程的工作目录更改为可执行文件所在的同一目录...
  • (读取进程输出流的例子,看this example
  • p.start() 上使用try-catch 并删除throws 声明,你会得到什么错误代码?
  • @JClassic,这会有什么不同?
  • @user2900314 没关系,我认为 throws 声明会使任何错误输出无效

标签: java swing


【解决方案1】:

在给出命令之前尝试设置ProcessBuilder 的目录。在 p 上使用directory(File directory) 方法给它一个工作目录,然后用command(String... command) 方法设置命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 2019-04-15
    • 2015-07-12
    • 1970-01-01
    • 2014-02-20
    • 2020-01-22
    • 1970-01-01
    相关资源
    最近更新 更多