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

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

马野
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文件,通常会保留注释。编

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

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

  • 问题内容: 在Java / C#中,您可以轻松地逐步执行代码以查找可能出了问题的地方,而IDE使此过程非常人性化。 您能以类似的方式跟踪python代码吗? 问题答案: 是! 有一个Python调试器pdb就是为了这样做! 你可以pdb使用或通过启动Python程序。 你可以执行一些命令,这些命令已在pdb页面中记录。 需要记住的一些有用的是: b:设置一个断点 c:继续调试,直到遇到断点 s:单