Freedom251 › Code Coverage Tools
JaCoCo

What JaCoCo is
JaCoCo is a free code coverage library for Java and Java Virtual Machine based environments. It measures instruction, branch, line, method, class, and complexity coverage, giving development teams several ways to examine which parts of their code are covered. Its Java agent instruments class files as the application loads them and works independently of the application framework. JaCoCo can produce reports in HTML, XML, and CSV, and includes Ant tasks and a Maven plug-in for collecting execution data and generating reports. Its integration matrix includes Gradle, Eclipse, IntelliJ IDEA, Jenkins, SonarQube, and TeamCity. JaCoCo officially supports Java class files from version 1.0 through 27, with experimental support for version 28; its runtime and tools require Java 1.5 or later. Line coverage and source highlighting depend on class files compiled with debug information that includes line numbers. The library and its included documentation are offered under the Eclipse Public License 2.0, except where otherwise indicated. JaCoCo’s agent TCP connections and JMX interface do not use authentication, so the project cautions against exposing them to untrusted sources. The project is maintained by volunteers and does not commit to release dates.
Who it suits
JaCoCo suits Java and Java Virtual Machine developers who want to collect coverage data and produce reports through Ant or Maven. Its integrations and coverage measures also make it relevant to teams using tools such as Gradle, Eclipse, Jenkins, SonarQube, or TeamCity.
What it does well
- Free Java code coverage library under EPL 2.0.
- Measures instruction, branch, line, method, class, and complexity coverage.
- Generates reports in HTML, XML, and CSV.
- Includes Ant tasks and a Maven plug-in.
- Integration matrix includes Gradle, Jenkins, SonarQube, and other tools.
What to know first
- Runtime and tools require Java 1.5 or higher.
- Line coverage and source highlighting need debug line information.
- Agent TCP connections and JMX have no authentication.
- Java 28 support is experimental.
Limits
JaCoCo is free. Line coverage and source highlighting require class files compiled with debug information that includes line numbers; Java 28 support is experimental.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free | Free Java code coverage library · EPL 2.0 license | Free |
As jacoco.org lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Open the JaCoCo website.
- Use a runtime and tools environment with Java 1.5 or higher.
- Choose Ant tasks or the Maven plug-in to collect execution data and create reports.
- Compile class files with debug information containing line numbers if line coverage or source highlighting is needed.
Verdict
Choose JaCoCo if you need a free library to measure Java code coverage and create reports through Ant or Maven. It supports a range of coverage metrics and integrations. Account for the debug information needed for line reporting and the unauthenticated agent interfaces when deciding how to configure it.
Questions
How much does JaCoCo cost?
JaCoCo is free, with a listed plan price of $0.
Which languages does JaCoCo support?
It is described as a code coverage library for Java and Java VM based environments. The listed supported languages are Java, Kotlin, Groovy, and Scala.
What report formats can it create?
JaCoCo can generate reports in HTML, XML, and CSV.
What Java versions does JaCoCo support?
It officially supports Java class files from version 1.0 through 27 and experimentally supports version 28. Its runtime and tools require Java 1.5 or later.
Is JaCoCo open source?
The library and included documentation are made available under the Eclipse Public License 2.0, except where otherwise indicated.
Which tools does JaCoCo integrate with?
Its integration matrix includes Gradle, Eclipse, IntelliJ IDEA, Jenkins, SonarQube, and TeamCity.
Facts from JaCoCo's own pages
- Build tools
- JaCoCo provides Ant tasks and a Maven plug-in for collecting execution data and creating reports. · jacoco.org, 4 Oct 2026
- Coverage metrics
- It analyzes instruction, branch, line, method, type, and cyclomatic complexity coverage. · jacoco.org, 4 Oct 2026
- Instrumentation
- Its Java agent instruments class files on the fly as they are loaded, independently of the application framework. · jacoco.org, 4 Oct 2026
- Integrations
- The integration matrix lists tools including Gradle, Eclipse, IntelliJ IDEA, Jenkins, SonarQube, and TeamCity. · jacoco.org, 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, 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, 4 Oct 2026
- Purpose
- JaCoCo is a code coverage library for Java and Java VM based environments. · jacoco.org, 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, 4 Oct 2026
- Report requirement
- Line coverage and source highlighting require class files compiled with debug information containing line numbers. · jacoco.org, 4 Oct 2026
- Reports
- It can create coverage reports in HTML, XML, and CSV formats. · jacoco.org, 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, 4 Oct 2026
- Support
- The project directs users to its public JaCoCo and EclEmma user group for feedback and questions. · jacoco.org, 4 Oct 2026
Where JaCoCo stands on Freedom251
- Code Coverage Tools#6 of 10
- Test Coverage Tools#17 of 27