我遇到用户将文件发布到服务器并且需要在服务器端编译的情况。服务器应检测语言并调用相应的编译器并将结果发送回客户端。现在我们正在支持Java,Python和C.有没有办法可以编译一个未从eclipse中导入eclipse的Java文件?而且,有没有一种方法可以在eclipse中调用python和C(或任何其他语言可以使用)的编译器?
答案 0 :(得分:1)
当您检测到代码的语言时,这变得非常简单:
String compiler = "";
switch(compilerCode)
{
case JAVA:
compiler = "javac";
break;
case C:
compiler = "javac";
break;
...
}
Process p = Runtime.getRuntime().exec(compiler + " " + file);
p.waitFor();
file
将是您尝试编译的文件的名称,compilerCode
将是一个代码,它将告诉您使用哪个编译器。
这是不言而喻的,但您应该安装所有编译器来编译您打算支持的所有语言。
编辑:
从正在运行的进程中获取错误消息非常容易。您所需要做的就是:
InputStream in = p.getErrorStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
...
String error = reader.readLine();
...
reader.close();