日期:2014-05-20  浏览次数:20836 次

Java程序调用gcc命令的问题
安装了一个Dev-C++。
在环境变量path下配置了Dev-c++的bin目录。
在dos界面下使用gcc编译完全没问题。

然后写了一个java代码。

  Process p = null;

String code = request.getParameter("code");

Runtime run = Runtime.getRuntime();

File file = new File("d:/gcc_test/a.cpp");
FileWriter fw = new FileWriter(file);
fw.write(code);
fw.close();

String exe = "gcc d:/gcc_test/a.cpp -o d:/gcc_test/a.exe";

p = run.exec("cmd + /c " + exe);

BufferedReader br = new BufferedReader(new InputStreamReader(p.getErrorStream()));

StringBuffer sb = new StringBuffer();

String temp ;

while( ((temp = br.readLine()) != null) ) {
sb.append(temp + "\n");
}

System.out.println(sb);

code是从上一个页面发来的textarea里的内容。 然后出错了。 错误信息是:'gcc' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

为什么dos界面可以执行gcc指令。 而用java调用就不行了。
是Dev-c++的问题还是java程序的问题。  
是不是不能装Dev-C++ 要装别的东西。。。 求解释。。

------解决方案--------------------
使用 gcc的 完整路径