Java - 执行外部exe文件

时间:2016-06-28 09:24:46

标签: java exe

我有一个在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执行它没有任何问题。谁能明白为什么它不起作用?

1 个答案:

答案 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();
    }       
}