安装了一个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++ 要装别的东西 求解释。。
在环境变量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的 完整路径。
2楼正解啊。完整路径就可以了!