【发布时间】: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 声明会使任何错误输出无效