2008-10-14 9 views
7

Gibt es eine Möglichkeit, alle Klassenabhängigkeiten einer Java-Hauptklasse zu finden?Wie bekomme ich eine Liste von Java-Klassenabhängigkeiten für eine Hauptklasse?

Ich habe manuell die Importe der Hauptklasse und ihre Importe gesiebt, aber dann festgestellt, dass, weil man nicht Klassen importieren muss, die im selben Paket sind, ich eine unvollständige Liste zusammenstellte.

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

+0

Ich habe versucht, JavaSkeleton (http://www.xmloperator.net/jsk/), aber es funktioniert nur mit Java 1.3 oder 1.4 :( –

Antwort

4

Es kann einfach mit nur javac getan werden. Löschen Sie Ihre Klassendateien und kompilieren Sie dann die Hauptklasse. javac wird rekursiv alle Klassen kompilieren, die es benötigt (vorausgesetzt, Sie verstecken private Paketklassen/Interfaces nicht in merkwürdig benannten Dateien). Dies gilt natürlich nicht für rekursive Hacks.

+0

Wie erzeugt das eine Liste von Klassenabhängigkeiten? –

+0

@Derek Mahar Nun, du müsstest ein, ähm, 'finden. -name" * .class "-print' oder, äh, "dir/s" (und einige andere Optionen). –

+0

Brilliant Lösung! Funktioniert besonders gut, wenn Sie die Ausgabe des javac in ein frisches, leeres Verzeichnis umleiten. Dann können Sie sofort diesen Ordner einwerfen und ein nette Bibliothek von Abhängigkeiten! Danke! –

1

in intellij idea haben Sie die geschickte dependency structure matrix. Sie können Abhängigkeiten auf Paket- und Klassenebene perfekt untersuchen. Wenn Sie es einfacher haben, haben Sie auch einen Abhängigkeitsbetrachter, aber Sie können nur Abhängigkeiten erster Ordnung sehen.

5

Ich gerade gefunden Class Dependency Analyzer, herunterladen, installieren konfigurieren und 10 Minuten später habe ich eine vollständige Klasse Abhängigkeitsliste.

+0

CDA ist sehr hilfreich. –

+2

Dies sollte die Antwort akzeptiert werden. – ArtB

+0

kann man sagen, Wie benutzt man es genau, um dieses spezielle Problem zu lösen? – qwwqwwq