4

我的问题是关于在 java 中编译 c++ 文件。我试过执行c#,没问题。此提取代码用于编译 c#

ProcessBuilder launcher = new ProcessBuilder("gmcs","HelloWorld.cs");`

但是,我的 C++ 代码

ProcessBuilder launcher =new ProcessBuilder("g++", "HelloWorld.cpp -o HelloWorld");


launcher.directory(new File(path)) 返回错误= 2,没有这样的文件或目录来指示我在两种情况下都使用的路径

4

1 回答 1

7

您需要单独提供参数:

ProcessBuilder launcher =
    new ProcessBuilder("g++", "HelloWorld.cpp", "-o", "HelloWorld");

否则,整个参数字符串作为一个参数传递给g++可执行文件,并g++尝试找到一个名为的文件HelloWorld.cpp\ -o\ HelloWorld(使用转义空格,就像在 Linux 终端上一样)。

有关用法的详细信息,请参阅文档

于 2013-01-30T14:54:34.700 回答