web-dev-qa-db-ja.com

Java Eclipseプロジェクトで未使用のクラスを見つける

私はいくつかのクラスが存在する大規模なEclipseプロジェクトを持っていますが、それらはどこでも使用することをやめましたが、@ Deprecatedとマークされることはありませんでした。

これらすべてを簡単に見つけるにはどうすればよいですか?

69
jjujuma

また、 UCDetector を使用したい:

screenshot

UCDetector(Unecessary Code Detector)は、不必要な(デッド)public Javaコード。最終的なコード、保護されたコード、またはプライベートなコードを作成するためのオープンソースEclipseプラグインツールです。

ボーナス:クラス間の循環依存関係も見つけることができます

他のツールの数 -Findbugsを含む-どうやってそれを行うかを知っている)


警告Cid 言及 コメント内

実行時にのみ認識されるインターフェイス実装がある場合、UCDetectorは機能しません。
実装クラスを未使用として誤ってマークします。


更新2017:静的コード分析は8年でかなり進化しました。
SonarLint for Eclipse を使用すると、最新の SonarJava 4.6プラグイン を使用してコードを分析できます。
それは デッドコードを見つける になります。

81
VonC

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

分析を使用するだけです|適切な検査を有効にしてコードを検査します(宣言冗長グループでの未使用宣言)。

IntelliJ 11 CEを使用すると、「分析|名前による検査の実行... |未使用の宣言」が可能になりました

0
Hasan Jamshaid