编译String中给出的java程序

时间:2011-09-14 11:41:27

标签: java compilation

我想进行一些实验,并在String中生成一个java程序(实验本身就是Java)。

现在我想测试它是否编译。如何在Java中使用String对象并查看它是否是合法的Java代码?

澄清:

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

4 个答案:

答案 0 :(得分:6)

你应该研究javax.tools.JavaCompiler。见this article

答案 1 :(得分:1)

看看JavaCompiler。 API文档提供了一个示例,说明如何创建许多编译任务并在每个任务上调用调用。 call方法返回一个布尔值,表示每次编译尝试是否成功。

答案 2 :(得分:0)

有一个编译器API

示例可见here

答案 3 :(得分:0)

如果您只想验证String的内容是否是合法的Java代码,那么您应该查看antlr。它可用于解析java源文件并创建抽象语法树。如果失败,则输入无效。

this question的第一个答案显示了一个简单语法的工作示例。你必须改用Java语法。