我做了一个小应用程序,根据某些信息生成Java测试类。基本上,我正在生成我们正在使用的库所需的样板代码。如何验证生成的Java代码的语法?
我想以更好的方式测试生成的代码,而不仅仅是将输出与预期的字符串进行比较。
- 是否有任何工具可以测试Java代码是否包含错误?
- 是否有任何设施来确定Java文件是否会编译?
- 是否有我应该用于这种情况的策略(我正在考虑使用Class类来获取有关该类的信息)?
我做了一个小应用程序,根据某些信息生成Java测试类。基本上,我正在生成我们正在使用的库所需的样板代码。如何验证生成的Java代码的语法?
我想以更好的方式测试生成的代码,而不仅仅是将输出与预期的字符串进行比较。
- 是否有任何设施,以测试Java代码中包含的错误?
是 - java编译器。
- 是否有任何设施来确定Java文件是否会编译?
是 - Java编译器。
- 有没有我应该用这种情况的策略?
是 - 编译文件。
请注意,您可以在运行时使用Runtime.exec(...)或在当前JVM中调用Java编译器。这是当前JVM中calling javax.tools
dynamically的一个不错的页面。
我想用
Class
类来获得关于类的信息。
这没有帮助。 Class
类仅与JVM已成功编译并成功加载的类相关。即使如此,它也不会告诉您原始代码中是否存在语法(或其他)错误。
Java 6引入了Compiler API。这可以用来在不调用外部编译器的情况下编译Java代码。这里有一个简短的introduction。
你总是可以尝试编译代码... – aioobe 2010-09-13 07:55:41
对前2个项目符号使用'javac'有什么问题? – NullUserException 2010-09-13 07:55:51
嗯..没有什么是错的。我从来没有教过从java编译java代码。我会做一些Google搜索。谢谢。 – Pran 2010-09-13 08:09:07