web-dev-qa-db-fra.com

Rechercher des classes inutilisées dans un projet Java Eclipse

J'ai un grand projet Eclipse dans lequel il existe plusieurs classes qui, bien qu'elles aient cessé d'être utilisées n'importe où, n'ont jamais été marquées @Deprecated.

Comment puis-je trouver facilement tout cela?

69
jjujuma

J'aime aussi utiliser UCDetector :

screenshot

UCDetector (détecteur de code nécessaire) est un outil de plug-in Eclipse Open Source permettant de rechercher le code Java public non nécessaire (mort). Il essaie également de rendre le code final, protégé ou privé.

Bonus: il peut aussi trouver des dépendances cycliques entre les classes 

(aussi un nombre d'autres outils } - y compris Findbugs - sait comment faire cela aussi.


Caveat: Cid mentions dans les commentaires :

UCDetector ne fonctionnera pas s'il existe des implémentations d'interface qui ne seront connues qu'au moment de l'exécution.
Cela marque incorrectement les classes d'implémentation comme inutilisées.


Mise à jour 2017: l'analyse de code statique a beaucoup évolué en 8 ans.
En utilisant SonarLint pour Eclipse , vous pouvez utiliser le dernier plug-in SonarJava 4.6 pour analyser votre code.
Il va trouver le code mort .

81
VonC

ProGuard peut être utilisé pour imprimer un rapport des classes/méthodes inutilisées. C'est pénible de lui fournir tous les pots dépendants.

Ces options répertorient les classes, les champs et les méthodes inutilisés dans l'application mypackage.MyApplication:

-injars      in.jar
-libraryjars <Java.home>/lib/rt.jar

-dontoptimize
-dontobfuscate
-dontpreverify
-printusage

-keep public class mypackage.MyApplication {
    public static void main(Java.lang.String[]);
}
1
rustyx

Il suffit d'utiliser Analyser | Inspecter le code lorsque l'inspection appropriée est activée (déclaration non utilisée dans le groupe de redondance de la déclaration).

En utilisant IntelliJ 11 CE, vous pouvez maintenant "Analyser | Exécuter l'inspection par nom ... | Déclaration non utilisée"

0
Hasan Jamshaid