Поиск неиспользуемых классов в проекте Java Eclipse

У меня есть большой проект Eclipse, в котором существует несколько классов, которые, хотя они перестали использоваться в любом месте, никогда не были отмечены @Deprecated.

Как я могу легко найти все это?

Ответ 1

Мне также нравится использовать UCDetector:

screenshot

UCDetector (ненужный кодовый детектор) - это инструмент для подключаемого модуля eclipse с открытым исходным кодом, чтобы найти ненужный (мертвый) открытый Java-код. Он также пытается сделать код окончательным, защищенным или приватным.

Бонус: он также может найти циклические зависимости между классами

(также количество других инструментов - включая Findbugs - знает, как это сделать)


Caveat: Cid упоминает в комментариях:

UCDetector не должен работать, если существуют реализации интерфейса, которые будут известны только во время выполнения.
Он неправильно отмечает классы реализации как неиспользуемые.


Обновление 2017: статический анализ кода развился довольно много за 8 лет.
Используя SonarLint для Eclipse, вы можете использовать последний плагин SonarJava 4.6, чтобы проанализировать ваш код.
Он будет найти мертвый код.

Ответ 2

ProGuard может использоваться для печати отчета о неиспользуемых классах/методах. Это боль для того, чтобы снабжать все зависимые банки.

Эти параметры перечисляют неиспользуемые классы, поля и методы в приложении 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[]);
}

Ответ 3

Просто используйте Analyze | Проверьте код с включенной инспекцией (неиспользуемая декларация в группе резервирования декларации).

Используя IntelliJ 11 CE, вы можете теперь "Проанализировать | Запустить проверку по имени... | Неиспользуемая декларация"