Neben FindBugs und PMD gibt es auch Bandera , ESC / Java und JLint . Einen Vergleich dazu finden Sie hier (PDF) . Hier ist ein Auszug von Relevanz:
%Vor%Hinweis: Der Artikel stammt aus 2004. Die Tools wurden möglicherweise in der Zwischenzeit verbessert.
Wie Sie sehen, finden FindBugs und PMD ziemlich viele und sind auch die beliebtesten statischen Analyse-Tools. Einige Punkte werden heutzutage jedoch auch von einer intelligenten IDE abgedeckt, wie zum Beispiel Null-Dereferenzierung, ungenutzte Ortsnamen und unerreichbarer Code. Eclipse zum Beispiel kann auf sie warnen.
Findbugs ist so ziemlich der Standard, da es sehr robust ist (für ein Tool, das aus der Forschung heraus gestartet wurde), regelmäßig gepflegt wird und mit den neuesten Versionen wirklich die meisten Grundlagen abdeckt. Es bietet außerdem eine hervorragende Eclipse-Integration und eine Vielzahl von Filter- und Sortieroptionen, mit denen Sie Ihr bevorzugtes Signal-Rausch-Verhältnis erreichen können.
Mein einziger Wunsch ist, dass es einen Workflow für Empfehlungen bieten könnte, sodass ich bestimmte Instanzen ignorieren kann (z. B. für Code, auf den ich keine Kontrolle habe) und nur Änderungen sehe. Kontinuierliche Analyse wäre auch schön, wenn ich Ersatzkerne habe.
Ich bin mit einigen sehr vielversprechenden Research-Tools vertraut, die statische Analysen für Dinge wie die Überprüfung der API-Konformität oder Threading-Analyse verwenden. Leider ist keine von ihnen wirklich Produktionsqualität und sie verlangen etwas Investition seitens des Entwicklers.
Ich würde vorschlagen, dass Sie den Code-Analysator in IntelliJ verwenden. Es hat über 600 Checks, die einfach ein- und ausgeschaltet werden können. Der Hauptgrund ist jedoch, dass viele Checks schnell behoben werden.
Wenn Sie nur einen Bericht ausführen, finden Sie möglicherweise 1000 oder 10.000 von markierten Problemen. Dies kann mühsam sein, wenn jedes Problem sehr wenig Wert hat, aber das Risiko besteht, dass Sie einen Fehler einführen. Mit IntelliJ können Sie jedoch innerhalb weniger Minuten Tausende von Problemen auswählen und beheben, wobei das viel geringere Risiko für die Einführung eines Fehlers besteht.
Das IntelliJ CE ist Open Source und kostenlos und verfügt über diese Funktion.
Diese Seite enthält eine Liste (mit kleinen Beschreibungen) einiger Open-Source-Code-Analysatoren.
Tags und Links java static-analysis