Wie lese ich eine Datei mit javax.lang.model?

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, ausreicht. 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.

Ist das der einzige Weg, diese API zu benutzen? 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?

    
hawk 23.01.2014, 14:43
quelle

1 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.processing) vorgesehen .Processor), die die Compiler-Plug-Ins sind, die Sie erwähnt haben. 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 JavaCompiler # getTask

    
user2934313 09.02.2014 21:52
quelle

Tags und Links