我的目标是使用注释为现有类添加一些源代码。
首先,我创建了一个注释,然后我实现了一个AbstractProcessor
类。
之后,我创建了javax.annotation.processing.Processor
文件,并使用export eclipse选项生成JAR文件。
当我在其他项目中使用我的jar时出现以下错误:
Internal compiler error: java.lang.NoClassDefFoundError: com/sun/source/util/Trees at org.xxx.preprocessor.ActionProcessor.init(ActionProcessor.java:44)
上面提到的一行就像加入的图片一样:
我想使用树来获取编译单元并将一些代码添加到我的注释函数中。
所以我第一次不知道如何解决这个问题,或者其他方法来解决这个问题。
答案 0 :(得分:1)
您编写了一个基于Sun内部代码的AP工具,但是在Eclipse IDE中运行它。 Eclipse附带了自己的Java编译器,因此您无法再访问内部Java类。
我建议查看具有完全相同问题的Project Lombok并查看其解决方案。消息来源隐藏在" Contribute"链接:https://github.com/rzwitserloot/lombok
在src/
文件夹中有一个文件夹eclipseAgent/
,可以帮助您入门。