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执行它,没有任何问题。有人知道为什么不行吗?

我发现更改给进程的命令可以使其正常工作。修改如下:

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

相关内容

  • 没有找到相关文章

最新更新