Найти неиспользуемые классы в проекте Java Eclipse - PullRequest
69 голосов
/ 20 марта 2009

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

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

Ответы [ 3 ]

81 голосов
/ 20 марта 2009

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

screenshot

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

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

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


Предостережение : Cid упоминает в комментариях :

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


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

1 голос
/ 18 марта 2014

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[]);
}
0 голосов
/ 26 марта 2017

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...