2008-10-14 6 views
7

Existe-t-il un moyen de trouver toutes les dépendances de classe d'une classe principale java? J'ai manuellement passé en revue les importations de la classe principale et de ses importations, mais je me suis rendu compte que, parce qu'il n'est pas nécessaire d'importer des classes qui se trouvent dans le même paquet, je dressais une liste incomplète.Comment puis-je obtenir une liste des dépendances de classes Java pour une classe principale?

J'ai besoin de quelque chose qui trouvera des dépendances récursivement (peut-être à une profondeur définie).

+0

J'ai essayé JavaSkeleton (http://www.xmloperator.net/jsk/), mais il ne fonctionne qu'avec Java 1.3 ou 1.4 :( –

Répondre

4

Il peut être facilement fait avec juste javac. Supprimez vos fichiers de classe, puis compilez la classe principale. javac compilera récursivement toutes les classes dont il a besoin (à condition de ne pas masquer les classes/interfaces privées des paquets dans des fichiers étrangement nommés). Bien sûr, cela ne couvre pas les hacks récursifs.

+0

Comment cela génère-t-il une liste de dépendances de classe? –

+0

@Derek Mahar Eh bien, vous devez faire un, erm, 'trouver. -name" * .class "-print' ou, er, 'dir/s' (et une autre option) –

+0

Solution brillante! Fonctionne particulièrement bien, si vous redirigez la sortie du javac vers un nouveau répertoire vide.Vous pouvez alors immédiatement mettre en place ce dossier et avoir un belle bibliothèque de dépendances! Merci! –

1

dans intellij idea vous avez la bonne dependency structure matrix. vous pouvez explorer parfaitement les dépendances au niveau du package et de la classe. Si vous préférez cela, vous avez aussi une visionneuse de dépendance, mais vous ne pouvez voir que les dépendances du premier ordre.

5

Je viens de trouver Class Dependency Analyzer, télécharger, installer configurer et 10 min plus tard, j'ai une liste complète des dépendances de classe.

+0

CDA est très utile. –

+2

Cela devrait être la réponse acceptée. – ArtB

+0

pouvez-vous dire comment vous l'avez utilisé exactement pour résoudre ce problème particulier? – qwwqwwq

Questions connexes