我正在尝试使用运行时和进程执行另一个文件
try
{
Runtime run = Runtime.getRuntime();
Process pro = run.exec("C:\\Users\\user\\Desktop\\file.exe");
}
catch(Exception a)
{
a.printStackTrace();
}
我可以在运行或 cmd 中输入此命令并能够打开文件,但通过我的程序运行它不会打开。没有错误,只是打不开。
最佳答案
为了更好地理解正在发生的事情(这实际上是 Process 类的要求),您需要重定向流程的输入和错误流 - 并且使用 ProcessBuilder 是启动流程的推荐方式:
public static void main(String[] args) throws Exception {
ProcessBuilder pb = new ProcessBuilder("C:\\Users\\user\\Desktop\\file.exe");
runProcess(pb)
}
private static void runProcess(ProcessBuilder pb) throws IOException {
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
关于Java 运行时 .exec() 不会打开可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24406239/