我的问题是在java中编译c ++文件。我试过执行c#,很好。 这个提取代码用于编译c#
ProcessBuilder launcher = new ProcessBuilder("gmcs","HelloWorld.cs");`
但是,我的c ++代码
ProcessBuilder launcher =new ProcessBuilder("g++", "HelloWorld.cpp -o HelloWorld");
返回error = 2,没有这样的文件或目录
表示我使用的路径
launcher.directory(new File(path))
在两种情况下
答案 0 :(得分:6)
您需要单独提供参数:
ProcessBuilder launcher =
new ProcessBuilder("g++", "HelloWorld.cpp", "-o", "HelloWorld");
否则整个参数字符串作为一个参数传递给g++
可执行文件,g++
尝试查找名为HelloWorld.cpp\ -o\ HelloWorld
的文件(使用转义空格)就像在Linux终端上一样。)
See the documentation了解有关使用情况的详细信息。