我有一个在C ++(cf.exe)上创建的可执行程序,它从一些文本文件(.txt)中获取参数,执行一些计算,并创建一个包含结果的文件(results.txt)。该计划不需要互动。一旦执行,计算完成后,它将自动关闭。
然后,我在Java上创建了其他程序,其中包含一个执行cf.exe的按钮。按下按钮时,将调用以下方法:
public void executeExternalProgram(){
String filePath = "C++" + File.separator + "cf.exe";
try {
System.out.println("Executing C++ exe...");
Process p = Runtime.getRuntime().exec(filePath);;
} catch (Exception e) {
e.printStackTrace();
}
}
我没有收到任何错误,但是当我按下按钮时,cf.exe没有被执行。当我手动执行cf.exe时,会正确创建结果文件。此外,我尝试将其他程序(如notepad.exe)复制到同一文件夹,并通过Java执行它没有任何问题。谁能明白为什么它不起作用?
答案 0 :(得分:0)
我发现更改给进程的命令使其正常工作。更改如下:
Process p = Runtime.getRuntime().exec("cmd /c start "+ filePath);
然后,按下按钮时调用的方法的更新代码:
public void executeExternalProgram(){
String filePath = "C++" + File.separator + "cf.exe";
try {
System.out.println("Executing C++ exe...");
Process p = Runtime.getRuntime().exec("cmd /c start "+ filePath);
} catch (Exception e) {
e.printStackTrace();
}
}