Frage

Gibt es eine Möglichkeit, alle Klassen Abhängigkeiten von einer Java-Hauptklasse zu finden?

Ich habe manuell wurde durch die Einfuhr der Hauptklasse Sichtung und es ist die Einfuhr aber dann erkennen, dass, weil man nicht Klassen hat zu importieren, die im selben Paket ist, war ich zusammen eine unvollständige Liste setzen.

Ich brauche etwas, das Abhängigkeiten rekursiv (vielleicht zu einer definierten Tiefe) finden werden.

War es hilfreich?

Lösung

Es kann eaily mit nur javac erfolgen. Löschen Sie Ihre Klassendateien und dann die Hauptklasse kompilieren. javac kompiliert rekursiv alle Klassen braucht es (Sie bietet nicht verstecken Paket private Klassen / Interfaces in ungewöhnlichen Namen Dateien). Natürlich ist dies keine rekursiven Hacks abdecken.

Andere Tipps

Ich habe gerade Klasse Dependency Analyzer , herunterladen, installieren konfigurieren und 10 min ist später habe ich eine komplette Klasse Abhängigkeitsliste.

IntelliJ IDEA haben Sie die raffinierte Abhängigkeitsstruktur Matrix . Sie können perfekt Abhängigkeiten Paket- und Klasse-Ebene erkunden. wenn Sie es einfacher mag, haben Sie eine Abhängigkeit Betrachter als gut, aber htere Sie können nur erster Ordnung Abhängigkeiten sehen.

Sie können einen Blick auf die jdeps Kommandozeilen-Tool nehmen wollen:

https://docs.oracle.com /javase/8/docs/technotes/tools/unix/jdeps.html

jdeps -cp <your cp> -v <path to your .class file>

Der Befehl wird eine Liste der Abhängigkeiten für die Java-Klasse-Datei zurück. Es gibt viele andere Optionen, die Sie in Ihrem Befehl wie -regex verwenden können Abhängigkeiten zu finden, ein bestimmtes Muster passende

Hier ist ein Code-Snippet können Sie Ihre Haupt-Methode in Java zu Ausgangspfade für alle Abhängigkeiten Ihrer Anwendung setzen in:

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader) cl).getURLs();
for(URL url: urls){
    System.out.println(url.getPath());
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top