java - 在 AnnotationProcessor 中访问 javac 选项

标签 java javac annotation-processing

我正在编写自定义 AnnotationProcessor 并且需要访问在执行期间设置为 javac 的选项:例如-详细,-s,-d

正确的做法是什么?我不认为解析“sun.java.command”系统属性或访问 com.sun.tools.javac.util.Options 是执行此操作的好方法。

非常感谢。

PS:-s 选项可能是这样的:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
Iterable<? extends File> locations = fm.getLocation(StandardLocation.SOURCE_OUTPUT);

最佳答案

没有公共(public) API 可以执行此操作。 “-s”和“-d”选项的效果应该反射(reflect)在文件管理器的行为中,而不是处理器需要直接检查的东西。

可以使用“-Afoo=bar”传递特定于处理器的选项,这可以从 getOptions 方法中查询。

关于java - 在 AnnotationProcessor 中访问 javac 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178735/

相关文章:

java - 如何使用 Java Mirror API 确定该类是抽象类?

java - 在 junit 测试中获取一个类作为 javax.lang.model.element.Element

java - 类 'javafx.scene.layout.BorderPane' 不支持属性 'controller'

java - 如何在 Java EE 6 中通过 EL 检索上下文参数?

java - RabbitMQ和channel和connection的关系

java - 从单个图像流有效生成多个缩略图

java - 从另一个java程序运行java程序

java - 注释处理期间的 GWT RfValidator NPE

java - Java命令提示符编译错误

Java 错误 : class, 接口(interface),或需要枚举