# Java test coverage > Set up Supercov with your agent, or run it yourself with Maven or Gradle. Web page: https://supercov.com/docs/java All Supercov pages for agents: https://supercov.com/llms.txt · Full text: https://supercov.com/llms-full.txt Ask your coding agent to set up Supercov in your project: ```text supercov-prompt Install Supercov with brew install supercorp-ai/tap/supercov, or take the platform archive from the GitHub release. Read supercov docs and check the supported JDK before running our existing Maven or Gradle tests. Show the coverage report and any measurement limits. Don't change application code or tests. ``` ## Run it yourself Java support requires a JDK 17 or newer with Maven or Gradle. Java and Kotlin have no package registry of their own here, so a JVM project takes the binary directly: ```sh brew install supercorp-ai/tap/supercov supercov --version ``` `npx supercov` works where Node.js is already present, and the platform archives on the [latest release](https://github.com/supercorp-ai/supercov/releases/latest) carry the same build at the same version. ### Run your tests From your project root: ```sh supercov -- mvn test supercov -- ./gradlew test ``` Keep the flags your build normally uses. Supercov drives Maven and Gradle as your test command rather than as a plugin: it adds the JUnit Platform launcher it needs to the build file inside its own isolated workspace copy, so your `pom.xml` and `build.gradle` are never edited. Supercov measures every JUnit Platform engine — JUnit 5, JUnit 4 through Vintage, Kotest and Spock — as well as TestNG. Inspect the run: ```sh supercov runs latest supercov runs latest gaps --limit 5 ``` ## Check what the tests assert Line coverage tells you a statement ran. It does not tell you that a test checked the result. Supercov can ask [Jev](https://typesafe.ai) whether each test would fail if a statement it ran changed. `runs latest assertions assess` saves the answers (it needs `TYPESAFE_API_KEY`), and `runs latest assertions` then lists the statements no test checks, file by file. A statement that is not asserted runs in some test, but nothing that test checks depends on it. See [Assertion coverage](https://supercov.com/docs/assertions?language=java). ## JVM-specific limits Supercov measures the classes your build compiles for the test run. Generated sources are measured only when the build includes them. See [runner support](https://supercov.com/docs/supported-suites?language=java#java-and-kotlin) for the detail available from each engine and its measurement limits. Already using JaCoCo or OpenClover? See [how the reports differ](https://supercov.com/compare/java-code-coverage.md). `supercov docs coverage-model` prints the guide for your installed version.