2012-11-01 35 views
2

我正在編寫自定義AnnotationProcessor,並且需要訪問在執行期間設置爲javac的選項: -verbose,-s,-d在AnnotationProcessor中訪問javac選項

這是做什麼的正確方法。我不認爲解析「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); 

回答

0

沒有公共API來做到這一點。 「-s」和「-d」選項的效果應反映在Filer的行爲中,而不是處理器需要直接檢查的內容。

處理器特定的選項可以使用「-Afoo = bar」,可以從getOptions方法中查詢。