我试图调用Java程序编译C++文件的GNU C编译器内部称之为“海湾合作委员会”,但我得到一个错误:无法从Java程序
这里是程序
class HelloWorld {
public static void main(String[] args) {
Runtime sys = Runtime.getRuntime();
System.out.println("Hello World!");
try {
String com = "g++ NB.cpp -o NNN";
System.out.println(com);
Process p = sys.exec(com);
}
catch (Exception ep) {
System.err.println(ep);}
}
}
这里是我所得到的,当我编译器和运行程序
$javac HelloWorld.java
$java HelloWorld
Hello World!
gcc NB.cpp -o NB
java.io.IOException: Cannot run program "g++": CreateProcess error=5, Access is denied
这里就是GCC是驻留
$ which gcc
/usr/bin/gcc
在这里,如果路径
$ echo $PATH
/usr/local/bin:/usr/bin:/cygdrive/c/Program Files/Java/jdk1.6.0_26/bin:/cygdrive/c/Program Files (x86)/MiKTeX 2.9/miktex/bin:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windo
ws/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/d/SourceForge/vectorpascalcom: D:/Cygwin/bin:/cygdrive/d/make382:/cygdrive/d/usr/bin:/cygdrive/d/Program Files/TortoiseSV
N/bin:/cygdrive/d/SourceForge/vectorpascalcom:/usr/bin:/cygdrive/c/Program Files/Java/jdk1.6.0_26/bin
任何一个可以帮助的内容是什么?
这是最有可能是权限问题。这个想法应该可行,但很有可能你的JVM没有权利调用g ++。尝试运行另一个可执行文件并观察输出。 –
尝试使用绝对路径为g ++,而不是依靠路径 – BegemoT
我试过绝对路径,但问题依然存在! – You