安装了一个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的 完整路径