Kompilien eines Satzes von Java -Dateien in einem Verzeichnisbaum mit der JSR 199 Compiler API
-
21-09-2019 - |
Frage
Ich versuche, viele Dateien mit der Compiler -API zu kompilieren.
Sagen Sie, ich habe eine Verzeichnisstruktur
.../program +/org +/foo |+ Main.java +/bar + Tools.java
Gibt es eine Möglichkeit, alle Java -Dateien zu entdecken und alles zu machen, was alles, ohne auf alle Verzeichnisse zurückzuführen zu sein und alle *.java -Dateien zu finden?
Bearbeiten: Ich versuche, alle Klassen zu kompilieren, die ich in einem Verzeichnisbaum bekomme. Diese Klassen sind unabhängig voneinander. Dann lade ich die Klassen und instanziiere einige Objekte dieser Klassen und rufe Methoden auf. Keiner der Klassen muss Hauptkurs haben.
Lösung
Das javax.tools.JavaFileManager
Klasse hat a list()
Methode, die den Trick ausführen sollte:
Iterable<JavaFileObject> list(JavaFileManager.Location location,
String packageName,
Set<JavaFileObject.Kind> kinds,
boolean recurse)
throws IOException
Verwenden Sie das recurse
Parameter, um "Unterpackungen" einzubeziehen und dann einfach über die zurückgegebene ITRETTET JavaFileObject
.