Frage:
Suche nach einer Methode zum Abrufen einer vollständigen Liste aller in die JVM geladenen Klassen, unabhängig von ihrem vorherigen Ladestatus, ist eine allgemeine Anforderung. Diese Liste sollte Klassen enthalten, die zu einem bestimmten Paket gehören, und deren Nachkommen.
Antwort:
Auch wenn es möglicherweise keine direkte programmatische Lösung gibt, gibt es eine praktische Alternative:
Verwenden der Befehlszeilenoption „-verbose:class“:
Durch Ausführen des folgenden Befehls:
java -verbose:class ....
Die JVM stellt eine bereit Ausführliche Anzeige aller geladenen Klassen sowie der Speicherorte, von denen sie abgerufen werden. Hier ist ein Beispiel für eine solche Ausgabe:
[Opened /usr/java/j2sdk1.4.1/jre/lib/rt.jar] [Opened /usr/java/j2sdk1.4.1/jre/lib/sunrsasign.jar] [Opened /usr/java/j2sdk1.4.1/jre/lib/jsse.jar] [Opened /usr/java/j2sdk1.4.1/jre/lib/jce.jar] [Opened /usr/java/j2sdk1.4.1/jre/lib/charsets.jar] [Loaded java.lang.Object from /usr/java/j2sdk1.4.1/jre/lib/rt.jar] [Loaded java.io.Serializable from /usr/java/j2sdk1.4.1/jre/lib/rt.jar] [Loaded java.lang.Comparable from /usr/java/j2sdk1.4.1/jre/lib/rt.jar] [Loaded java.lang.CharSequence from /usr/java/j2sdk1.4.1/jre/lib/rt.jar] [Loaded java.lang.String from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
Diese Ausgabe zeigt deutlich den Ladevorgang und die Quellspeicherorte der Klassen.
Ausführlichere Informationen finden Sie unter: [JVM -verbose Argument Dokumentation](https://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html#verbose).
Das obige ist der detaillierte Inhalt vonWie kann ich eine vollständige Liste aller in der JVM geladenen Klassen erhalten, einschließlich der Klassen aus bestimmten Paketen und deren Nachkommen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!