- Home
- Test Coverage Tools
- JaCoCo
JaCoCo
What it is
JaCoCo is a free code coverage library for Java and Java VM-based environments. It measures instruction, branch, line, method, type, and cyclomatic complexity coverage. Its Java agent instruments class files as they load, independently of the application framework. Reports can be produced in HTML, XML, and CSV. JaCoCo provides Ant tasks and a Maven plug-in for collecting execution data and creating reports; its integration matrix also lists Gradle, Eclipse, IntelliJ IDEA, Jenkins, SonarQube, and TeamCity. It officially supports Java class files from versions 1.0 through 27, with experimental support for version 28. The runtime and tools require Java 1.5 or higher. Line coverage and source highlighting depend on class files compiled with debug information that includes line numbers. The library and included documentation use the Eclipse Public License 2.0 except where otherwise noted. The project is maintained by volunteers and does not commit to release dates. Its agent’s TCP connections and JMX interface have no authentication, so exposing them to untrusted sources may reveal application information or allow denial-of-service attacks.
For and against
For
- Measures six listed coverage metrics.
- Produces HTML, XML, and CSV reports.
- Includes Ant tasks and a Maven plug-in.
- Integrates with tools including Gradle and Jenkins.
Against
- Line coverage needs debug information with line numbers.
- Agent TCP and JMX interfaces have no authentication.
- No particular release dates are promised.
The verdict
JaCoCo provides Java coverage analysis with multiple report formats and listed build and development integrations. Review the debug-information requirement and the agent interface security warning before configuring it.
Who it suits
JaCoCo suits Java teams that need coverage metrics and reports integrated with build or development tools. Teams enabling its agent or JMX interface should account for the documented lack of authentication.
Plans and prices
Free
Free Java code coverage library · EPL 2.0 license
Read 4 Oct 2026 · jacoco.org
On the record
- Build tools
- JaCoCo provides Ant tasks and a Maven plug-in for collecting execution data and creating reports.jacoco.org · read 4 Oct 2026
- Coverage metrics
- It analyzes instruction, branch, line, method, type, and cyclomatic complexity coverage.jacoco.org · read 4 Oct 2026
- Instrumentation
- Its Java agent instruments class files on the fly as they are loaded, independently of the application framework.jacoco.org · read 4 Oct 2026
- Integrations
- The integration matrix lists tools including Gradle, Eclipse, IntelliJ IDEA, Jenkins, SonarQube, and TeamCity.jacoco.org · read 4 Oct 2026
- Java support
- JaCoCo officially supports Java class files from version 1.0 to 27 and experimentally supports version 28; its runtime and tools require Java 1.5 or higher.jacoco.org · read 4 Oct 2026
- License
- The library and its included documentation are made available under the Eclipse Public License 2.0, except where otherwise indicated.jacoco.org · read 4 Oct 2026
- Purpose
- JaCoCo is a code coverage library for Java and Java VM based environments.jacoco.org · read 4 Oct 2026
- Release schedule
- The project says it is maintained by volunteers in their free time and does not commit to particular release dates.jacoco.org · read 4 Oct 2026
- Report requirement
- Line coverage and source highlighting require class files compiled with debug information containing line numbers.jacoco.org · read 4 Oct 2026
- Reports
- It can create coverage reports in HTML, XML, and CSV formats.jacoco.org · read 4 Oct 2026
- Security
- The agent’s TCP connections and JMX interface have no authentication, and the documentation warns that exposing them to untrusted sources may reveal application information or permit denial-of-service attacks.jacoco.org · read 4 Oct 2026
- Support
- The project directs users to its public JaCoCo and EclEmma user group for feedback and questions.jacoco.org · read 4 Oct 2026