Как определить, успешно ли скомпилирован Java-код пользователя?

У меня есть веб-приложение, работающее в стеке LAMP, которое позволяет пользователям записывать Java-код в HTML-форму, но в зависимости от того, успешно ли компилируется этот код, я хочу делать разные вещи.

В настоящее время у меня есть способ, которым программа PHP будет генерировать файл .java, используя ввод пользователя, выполнять его на сервере (я позаботился о безопасности), а затем проверять, были ли выведены какие-либо ошибки.

Я знаю, что Java печатает ошибки, используя поток System.err, есть ли способ узнать, выводит ли это что-нибудь на консоль? Как способ слушать и различать выходные потоки программы?

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]