2010-09-13 27 views
1

我做了一个小应用程序,根据某些信息生成Java测试类。基本上,我正在生成我们正在使用的库所需的样板代码。如何验证生成的Java代码的语法?

我想以更好的方式测试生成的代码,而不仅仅是将输出与预期的字符串进行比较。

  • 是否有任何工具可以测试Java代码是否包含错误?
  • 是否有任何设施来确定Java文件是否会编译?
  • 是否有我应该用于这种情况的策略(我正在考虑使用Class类来获取有关该类的信息)?
+3

你总是可以尝试编译代码... – aioobe 2010-09-13 07:55:41

+4

对前2个项目符号使用'javac'有什么问题? – NullUserException 2010-09-13 07:55:51

+0

嗯..没有什么是错的。我从来没有教过从java编译java代码。我会做一些Google搜索。谢谢。 – Pran 2010-09-13 08:09:07

回答

3
  • 是否有任何设施,以测试Java代码中包含的错误?

是 - java编译器。

  • 是否有任何设施来确定Java文件是否会编译?

是 - Java编译器。

  • 有没有我应该用这种情况的策略?

是 - 编译文件。

请注意,您可以在运行时使用Runtime.exec(...)或在当前JVM中调用Java编译器。这是当前JVM中calling javax.tools dynamically的一个不错的页面。


我想用Class类来获得关于类的信息。

这没有帮助。 Class类仅与JVM已成功编译并成功加载的类相关。即使如此,它也不会告诉您原始代码中是否存在语法(或其他)错误。

2

Java 6引入了Compiler API。这可以用来在不调用外部编译器的情况下编译Java代码。这里有一个简短的introduction