在Java Eclipse项目中查找未使用的类


Answers:


86

我也喜欢使用UCDetector

屏幕截图

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

奖励:它还可以查找类之间的循环依赖关系

(还有许多其他工具(包括Findbugs)也知道该怎么做)


警告Cid在评论中提到:

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


2017年更新:静态代码分析在8年中发展了很多。
使用SonarLint for Eclipse,您可以使用最新的SonarJava 4.6插件来分析代码。
它将找到无效代码


4
这适用于android项目吗?我下载并安装了UCDetector菜单:(
Jay

3
@VonC-如果存在仅在运行时知道的接口实现,则UCDetector将不起作用。它错误地将实现类标记为未使用:(
Cid 2012年

2
@Cid有趣。我已将您的评论包含在答案中,以提高知名度。
VonC 2012年

如果一个Maven插件包含此功能,那就太好了!!!
JRichardsz

@JRichardsz我同意。据我所知,只有maven.apache.org/plugins-archives/maven-shade-plugin-3.1.1/…接近。
VonC

1

ProGuard可用于打印未使用的类/方法的报告。但是,向其提供所有依赖的jar都是很痛苦的。

这些选项列出了应用程序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[]);
}

我有同样的想法!您是否找到一种为Maven项目指定所有依赖项的好方法?
Zero3

@ Zero3作为一个选项,您可以使用maven依赖插件列出所有依赖关系或将它们提取到某个本地目录,然后运行Windows或linux脚本,该脚本将在目录中列出jar并生成jar列表参数字符串并运行proguard。
2016年

-1

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

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


这个问题要求一个Eclipse解决方案。PS,我没有否认你,只是添加评论。
luis.espinal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.