我有一个在LAMP堆栈上运行的Web应用程序,允许用户将Java代码写入HTML表单,但是根据代码是否成功编译,我想做不同的事情。
我目前的方式是PHP程序将使用用户的输入生成.java文件,在服务器上执行它(我已经处理了安全部分),然后检查是否输出了任何错误
我知道Java使用System.err流输出错误,有没有办法让我告诉控制台是否有任何输出?像一种监听和区分程序输出流的方法?
答案 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