2008-10-14 12 views
7

Czy istnieje sposób na znalezienie wszystkich zależności klas głównej klasy java?Jak uzyskać listę zależności klas Java dla klasy głównej?

Ręczne przesiewanie przez import głównej klasy i jego import, ale potem zdałem sobie sprawę, że ponieważ nie trzeba importować klas, które są w tym samym pakiecie, składałem niepełną listę.

Potrzebuję czegoś, co znajdzie rekursywnie zależności (być może na określoną głębokość).

+0

Próbowałem JavaSkeleton (http://www.xmloperator.net/jsk/), ale działa tylko z java 1.3 lub 1.4 :( –

Odpowiedz

4

Można to zrobić przy pomocy javac. Usuń pliki klas, a następnie skompiluj główną klasę. javac rekursywnie skompiluje dowolne klasy, których potrzebuje (pod warunkiem, że nie ukryjesz prywatnych klas/interfejsów pakietów w dziwnie nazwanych plikach). Oczywiście nie obejmuje to rekurencyjnych hacków.

+0

W jaki sposób generuje to listę zależności klas? –

+0

@Derek Mahar Cóż, musisz zrobić, erm, 'find. -name" * .class "-print' lub, er, 'dir/s' (i jakaś inna opcja) –

+0

Doskonałe rozwiązanie! Działa szczególnie dobrze, jeśli przekierowujesz wyjście javac do świeżego, pustego katalogu, a następnie od razu możesz zgnieść ten folder i mieć dobra biblioteka zależności! Dziękujemy! –

1

w intellij idea masz sprytne dependency structure matrix. możesz doskonale poznawać zależności na poziomie pakietu i klasy. jeśli ci się to podoba, masz także przeglądarkę zależności, ale możesz zobaczyć tylko zależności pierwszego rzędu.

5

Właśnie znalazłem Class Dependency Analyzer, pobierz, zainstaluj konfigurację i 10 min później mam pełną listę zależności klasowych.

+0

CDA jest bardzo pomocna –

+2

To powinna być zaakceptowana odpowiedź: – ArtB

+0

Czy możesz odpowiedzieć? jak użyłeś go dokładnie, aby rozwiązać ten konkretny problem? – qwwqwwq

Powiązane problemy