SpotBugs ist ein statisches Analysetool und Bytecode-Analyzer für Java-Anwendungen. Es scannt kompilierte Klassendateien, um Bugs, Sicherheitslücken und Leistungsprobleme zu identifizieren, ohne den Code auszuführen. Das System fungiert sowohl als Bug-Detektor als auch als Tool für statische Anwendungssicherheitstests (SAST), um logische Fehler und API-Missbrauch aufzuspüren.
Die Hauptfunktionen von spotbugs/spotbugs sind: Java Bytecode Analysis Tools, Java Static Analysis Tools, Java Web Security, Static Code Analyzers, Data Flow Analysis, Operand Stack Simulation, Java Concurrency Analysis, Security Auditing.
Open-Source-Alternativen zu spotbugs/spotbugs sind unter anderem: uber/nullaway — NullAway is a Java static analysis tool and build-time detector designed to identify null pointer risks. It functions… pmd/pmd — PMD is a multi-language static code analyzer used to identify programming flaws, unused variables, and dead code… checkstyle/checkstyle — Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best… yandex/gixy — Gixy is a static configuration analyzer and security auditor for Nginx. It functions as an infrastructure-as-code… col-e/recaf — Recaf is a suite of specialized tools for assembling, editing, deobfuscating, decompiling, and instrumenting Java… crytic/slither.
NullAway is a Java static analysis tool and build-time detector designed to identify null pointer risks. It functions as a nullability checker that uses annotations to verify that references are not null before they are dereferenced, preventing runtime crashes. The analyzer implements the JSpecify standard to ensure consistent nullability annotations across different Java libraries. It distinguishes itself through the use of a service provider interface to model the nullability behavior of third-party libraries that lack source annotations and by providing specialized support for Lombok-gener
PMD is a multi-language static code analyzer used to identify programming flaws, unused variables, and dead code without executing the program. It functions as a code smell detector and coding standard enforcer, ensuring source code adheres to specific naming conventions, structural requirements, and project style guides. The project features an XPath-based rule engine that allows users to define custom analysis patterns using queries against an abstract syntax tree. It also includes a copy-paste detector to identify duplicated code blocks across multiple files and a visual rule designer for
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
Gixy is a static configuration analyzer and security auditor for Nginx. It functions as an infrastructure-as-code security scanner and web server configuration linter designed to identify vulnerabilities and misconfigurations in server definitions before deployment. The tool focuses on detecting high-risk security flaws, including host header spoofing, server-side request forgery, and path traversal. It specifically audits Nginx configurations for risks such as HTTP splitting, multiline header issues, and unauthorized third-party access resulting from incorrect Referer or Origin header patter