如何验证生成的Java代码的语法?

时间:2010-09-13 07:53:57

标签: java design-patterns code-generation compilation

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

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

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

2 个答案:

答案 0 :(得分:3)

  
      
  • 是否有任何工具可以测试Java代码是否包含错误?
  •   

是 - java编译器。

  
      
  • 是否有任何工具可以确定Java文件是否会编译?
  •   

是 - Java编译器。

  
      
  • 我是否应该采取策略来应对这种情况?
  •   

是 - 编译文件。

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


  

我在考虑使用Class类来获取有关该类的信息。

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

答案 1 :(得分:2)

Java 6引入了Compiler API。这可用于编译Java代码而无需调用外部编译器。这是一个简短的introduction