当前位置: 首页 > 面试题库 >

如何在编译过程中逐步调试注释处理器?

马野
2023-03-14
问题内容

我有一个注释处理器,用于保留策略= SOURCE的注释。

我不知道如何逐步调试它。

  • 运行mvn install,编译或打包或ant javac时,我已发布了打印语句,记录器信息,并且在编译日志中看到了它们的sysout。

  • 但是,我不知道如何在Eclipse中逐步调试处理器。我的意思是,您如何逐步调试编译时?


问题答案:

您必须使用调试配置从Eclipse调用Java编译器(您需要从“调试配置…”菜单选项中手动创建配置。

调用JDK
1.6或更高版本下的Java编译器的“正确”方法是使用javax.tools中的JavaCompiler接口,该接口是从ToolProvider获得的(我包括所有链接,因为您有大量的类/软件包文档应该读)。

“快而脏”的方式( 应该
起作用,但我不能保证)是调用com.sun.tools.javac.Main.main(),并将其传递给您常规的命令行参数。为此,您需要tools.jar在类路径上(位于中$JAVA_HOME/lib)。



 类似资料:
  • null 代码(步骤1和2): 实际上,第一个任务执行良好,并为注释处理器实现编译.class文件。它在第二个任务停止。 Ant说: Java 1.6 Ant 1.8.2

  • 我在编译使用我的注释处理器的代码时收到以下错误: 关于如何调试这个有什么提示吗?错误输出根本没有用处。有没有办法得到更详细的错误?

  • 问题内容: Android编译器如何工作?是否在编译时删除Java代码和Android XML文件中的注释? 问题答案: 将Java文件中的注释编译为类文件后,它们将被删除或忽略。类文件不是供人阅读的- 它们经过优化可以在虚拟机上高效运行。如果保留注释,它们只会导致类文件大于所需的大小,并且没有任何额外的好处(即,编译器和虚拟机不理解注释,因此为什么要包含它们) 对于XML文件,通常会保留注释。编

  • 问题内容: 我想逐行调试Java程序的整个流程,而我正在使用eclipse,我该怎么做? 问题答案: 在Eclipse中调试Java程序需要执行多个步骤,例如: 设置断点 启动调试器 控制程序执行。 对于逐行使用F6和F5进入方法 评估变量等 将所有内容放在此处会使答案过长。我建议您遵循本教程: http://www.vogella.com/articles/EclipseDebugging/ar

  • 问题内容: 我可能只是看错了方向,但我发现有关批注处理的JSE文档非常稀疏。我想编写一个注释处理器,该处理器处理带注释的String字段和局部变量,以计算的String表达式替换它们。这应该不会太复杂,但是我对于Javax.annotation.processing的Javadoc却迷失了。 编辑:我需要在编译时处理批注,因为我想修改生成的代码。它应将带注释的常量String表达式替换为计算的St

  • 问题内容: 有没有人在编译时有一个干净的Maven项目预处理类注释示例,并随后生成了要在同一编译过程中编译的类? 是否有人有分步执行该项目的程序? 问题答案: 在网上浏览了大量现有文档后,我想到了以下内容: 需要澄清的是: 为了处理给定项目P上的注释,您首先需要在单独的库S中编译的注释处理器。P应该依赖于S。 在Java 5中实现注释处理与在Java 6中实现绝对不同。 Java 5依赖于apt的