2014-01-23 12 views
8

Ich sehe viele Referenzen auf javax.lang.model als die API für die Analyse von Java-Dateien und es scheint, dass es für das, was ich tun möchte, ausreichen wird. Aber ich finde keine Beispiele für die Verwendung der Klassen darin, beginnend mit dem Öffnen einer .java-Datei. Die einzige vage Referenz, die ich gefunden habe, ist das Schreiben eines Compiler-Plugins und das Aufrufen Ihres Codes mit javac.Wie liest man eine Datei mit javax.lang.model?

Ist das die einzige Möglichkeit, diese API zu verwenden? Ist es nicht möglich, einfach eine Datei zu öffnen und die Instanzen der Klassen von javax.lang.model.element mit Ihrer eigenen main() zu bekommen? Könnte mich jemand auf solche Arbeitsbeispiele hinweisen?

Antwort

4

Die Pakete javax.lang.model, javax.lang.model.element, javax.lang.model.element.type und javax.model.element.util sind für die Verwendung in Annotationsprozessoren (javax.annotation) vorgesehen. processing.Processor), die die von Ihnen erwähnten Compiler-Plugins sind. Es gibt eine Compiler-API, mit der Sie Klassen zur Laufzeit kompilieren und analysieren können. Sie können javax.tools.ToolProvider.getSystemJavaCompiler() verwenden, das eine javax.tools.JavaCompiler-Klasse zurückgibt. Es verfügt über eine Schnittstelle zum Kompilieren von .java-Dateien und zum Ausführen von Annotationsprozessoren. Weitere Informationen finden Sie unter JavaCompiler#getTask

Verwandte Themen