Скомпилируйте Java-программу, указанную в строке - PullRequest
4 голосов
/ 14 сентября 2011

Я хочу провести небольшой эксперимент и сгенерировать Java-программу в строке (эксперимент сам по себе на Java).

Теперь я хочу проверить, компилируется ли он или нет.Как мне взять String объект в Java и посмотреть, является ли он допустимым кодом Java?

Уточнение:

String prog = "public interface B {public void speak();}"
boolean doesItCompile = ???

Ответы [ 4 ]

6 голосов
/ 14 сентября 2011

Вы должны посмотреть на javax.tools.JavaCompiler .см. эту статью .

1 голос
/ 14 сентября 2011

Взгляните на JavaCompiler.Документация по API предоставляет пример того, как создать ряд задач компиляции и вызвать вызов для каждой из них.Метод call возвращает логическое значение, указывающее, была ли успешной каждая попытка компиляции.

0 голосов
/ 14 сентября 2011

Если вы просто хотите проверить, является ли содержимое String допустимым кодом Java, вам следует взглянуть на antlr. Его можно использовать для анализа исходного файла Java и создания абстрактного синтаксического дерева. Если это не удается, значит, ввод неверен.

Первый ответ на на этот вопрос показывает рабочий пример с простой грамматикой. Вместо этого вам придется использовать грамматику Java.

0 голосов
/ 14 сентября 2011

Есть компилятор API .

Пример можно увидеть здесь :

...