2

我正在编写自定义 AnnotationProcessor 并需要访问在执行期间设置为 javac 的选项:例如 -verbose、-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);
4

1 回答 1

0

没有公共 API 可以做到这一点“-s”和“-d”选项的效果应该反映在文件管理器的行为中,而不是处理器需要直接检查的东西。

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

于 2012-11-05T10:47:30.607 回答