在 JavaEclipse 项目中查找未使用的类

我有一个大型的 Eclipse 项目,其中存在几个类,尽管它们不再在任何地方使用,但从未被标记为@Depreated。

我怎么才能轻易找到这些呢?

51230 次浏览

我也喜欢使用 UCDetector :

screenshot

UCDetector (不必要的代码检测器)是一个开源 Eclipse 插件工具,用于查找不必要的(已死)公共 Java 代码。它还尝试使代码成为最终的、受保护的或私有的。

额外的好处: 它还可以找到类之间的循环依赖关系

(也是一个 其他工具的数量——包括 Findbug ——也知道如何做到这一点)


警告 : 希德提到 在评论中:

如果存在仅在运行时才知道的接口实现,UCDetector 将不能工作。
它错误地将实现类标记为未使用。


2017年最新消息: 静态程序分析在过去的8年里发生了很大的变化。
使用 用于 Eclipse 的 SonarLint,您可以使用最新的 SonarJava 4.6插件来分析代码。
它会 找到死代码

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[]);
}

只需使用启用了适当检查的分析 | 检查代码(声明冗余组下未使用的声明)。

使用 IntelliJ 11 CE,您现在可以“分析 | 按名称运行检查... | 未使用的声明”