如何判断用户的java代码是否已成功编译?

时间:2015-05-04 04:30:18

标签: java php compilation compiler-errors sandbox

我有一个在LAMP堆栈上运行的Web应用程序,允许用户将Java代码写入HTML表单,但是根据代码是否成功编译,我想做不同的事情。

我目前的方式是PHP程序将使用用户的输入生成.java文件,在服务器上执行它(我已经处理了安全部分),然后检查是否输出了任何错误

我知道Java使用System.err流输出错误,有没有办法让我告诉控制台是否有任何输出?像一种监听和区分程序输出流的方法?

1 个答案:

答案 0 :(得分:2)

您可以查看javac退出代码。以下是javac退出代码列表:

static final int
    EXIT_OK = 0,        // Compilation completed with no errors.
    EXIT_ERROR = 1,     // Completed but reported errors.
    EXIT_CMDERR = 2,    // Bad command-line arguments
    EXIT_SYSERR = 3,    // System error or resource exhaustion.
    EXIT_ABNORMAL = 4;  // Compiler terminated abnormally

参考文献:http://bugs.java.com/view_bug.do?bug_id=7014715

从Java 6开始,您可以以编程方式调用Java编译器(如果提供)。 请参阅:ToolProvider#getSystemJavaCompiler