我正在用 Java 编写一个注释处理器,在这个注释处理器中,我希望能够在我使用这个注释处理器的项目的项目层次结构中找到一个文件。通过注释,我可以传入我正在搜索的文件相对于项目根目录的路径,但我无法检索项目的工作目录。
假设处理器是 MyCustomProcessor,我在项目 MyProject 上使用它。我希望能够从 MyCustomProcessor 的“process”方法访问(读取)MyProject 项目结构中的文件(属性文件)。
我已阅读此链接 Eclipse - Annotation processor, get project path但是当我使用他们的解决方案时,我从 StandardJavaFileManager.getLocation(StandardLocation.SOURCE_PATH)
调用返回 null。
有关实现的更多详细信息:
我的注释处理器:
@SupportedAnnotationTypes(value = {"MyAnnotation" })
@SupportedSourceVersion(RELEASE_6)
public class MyCustomProcessor extends AbstractProcessor {
...
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
for (final Element element : roundEnv.getElementsAnnotatedWith(MyAnnotation.class)) {
<!-- Here is where I would like to get the working directory !-->
}
}
}
有关测试和开发环境的更多详细信息:Eclipse Kepler、JRE 1.7。
如果您需要更多详细信息,请询问。
最佳答案
对该答案的评论指出这个问题是一个解决方案:null JavaCompiler in Eclipse
某些工具未在 JRE 中实现,仅在 JDK 中可用。看来 Eclipse 默认使用 JRE 运行处理器,因此您需要将项目配置为使用 JDK 作为运行时。
关于java - 如何从 Java 中的注释处理器获取项目的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192381/