繁体   English   中英

从sts / eclipse内调用不同语言的编译器

[英]Invoke compilers of different languages from within sts/eclipse

我遇到一种情况,用户将文件发布到服务器,并且需要在服务器端进行编译。 服务器应检测语言并调用相应的编译器,然后将结果发送回客户端。 现在,我们正在支持Java,Python和C。有没有办法编译未从eclipse内部导入到eclipse中的Java文件? 而且,是否有一种方法可以从eclipse中调用python和C(或可以使用任何其他语言)的编译器?

当您检测代码的语言时,这变得非常容易:

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM