FindBugs is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
static code analyser created by
Bill Pugh and David Hovemeyer which detects possible bugs in
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
programs.
Potential errors are classified in four ranks: (i) scariest, (ii) scary, (iii) troubling and (iv) of concern. This is a hint to the developer about their possible impact or severity. FindBugs operates on
Java bytecode
In computing, Java bytecode is the bytecode-structured instruction set of the Java virtual machine (JVM), a virtual machine that enables a computer to run programs written in the Java programming language and several other programming languages, ...
, rather than source code. The software is distributed as a stand-alone
GUI application. There are also plug-ins available for
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
,
NetBeans
NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java ...
,
IntelliJ IDEA
IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is a ...
,
Gradle
Gradle is a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. Supported languages include Java (as well as Kotli ...
,
Hudson,
Maven
MAVEN is an American spacecraft orbiting Mars to study the loss of its atmospheric gases to space, providing insight into the history of
the planet's climate and water. The spacecraft name is an acronym for "Mars Atmosphere and Volatile Evolu ...
,
Bamboo
Bamboos are a diverse group of evergreen perennial flowering plants making up the subfamily Bambusoideae of the grass family Poaceae. Giant bamboos are the largest members of the grass family. The origin of the word "bamboo" is uncertain, ...
and
Jenkins.
Additional rule sets can be plugged in FindBugs to increase the set of checks performed.
See also
*
List of tools for static code analysis
This is a list of notable tools for static program analysis (program analysis is a synonym for code analysis).
Static code analysis tools
Languages
Ada
*
*
*
*
*
*
*
*
*
*
*
C, C++
*
*
*
*
*
*
*
*
*
*
*
...
External links
*
Manualfb-contrib: additional bug detectors for FindBugsFindSecurityBugs: additional security-oriented bug detectors for FindBugsFindBugs-IDEA – The FindBugs Plugin for IntelliJ IDEA
SpotBugs
SpotBugs is the spiritual successor of FindBugs, carrying on from the point where it left off with support of its community.
In 2016, the project lead of FindBugs was inactive but there are many issues in its community so Andrey Loskutov gave an announcement to its community, and some volunteers tried creating a project with support for modern Java platform and better maintainability. In 2017 Sep, Andrey Loskutov again gave an announcement about the status of new community, then released SpotBugs 3.1.0 with support for
Java 11
The Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Communit ...
the new LTS, especially
Java Platform Module System
The Java Platform Module System specifies a distribution format for collections of Java code and associated resources. It also specifies a repository for storing these collections, or '' modules'', and identifies how they can be discovered, loaded ...
and
invokedynamic
instruction.
There are also plug-ins available for Eclipse, IntelliJ IDEA, Gradle, Maven and SonarQube. SpotBugs also supports all of existing FindBugs plugins such as sb-contrib, find-security-bugs, with several minor changes.
External links
SpotBugs Official WebsiteSpotBugs Manual
References
Static program analysis tools
Java development tools
Free software testing tools
{{programming-software-stub