---
title: Compatibility and requirements for the Java agent
source: https://docs.newrelic.com/docs/apm/agents/java-agent/getting-started/compatibility-requirements-java-agent
---

[New Relic's Java agent](https://docs.newrelic.com/docs/agents/java-agent/getting-started/introduction-new-relic-java) includes built-in instrumentation of the most popular parts of the Java ecosystem, including app servers, frameworks, databases, and message queuing systems. For frameworks and libraries that are not instrumented out of the box, you can extend the agent with [Java custom instrumentation](https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/java-custom-instrumentation).

Want to try out New Relic's Java agent? [Create a New Relic account](https://newrelic.com/signup) for free! No credit card required.

## Requirements to install the agent [#java-requirements]

Before you install the Java agent, ensure your system meets these requirements:

**JVM**

The Java agent is compatible with any JVM-based language, including: Java, Scala, Kotlin, and Clojure. For instrumentation support for language-specific features, see the [Automatically instrumented frameworks and libraries](#auto-instrumented) section below.

| Java version | Compatible Java agent versions               |
| ------------ | -------------------------------------------- |
| Java 26      | v9.2.0 to current                            |
| Java 25      | v8.25.0 to current                           |
| Java 24      | v8.20.0 to current                           |
| Java 21      | v8.7.0 to current                            |
| Java 17      | v7.4.0 to current                            |
| Java 11      | v4.7.0 to current                            |
| Java 8       | v3.10.0 to current                           |
| Java 7       | v3.0.0 to v6.5.0, v6.5.2, v6.5.3, and v6.5.4 |

Some Java agent versions in this table are no longer supported, but are still listed for reference. The list of supported Java agent versions is in [Java agent EOL policy](https://docs.newrelic.com/docs/apm/agents/java-agent/getting-started/java-agent-eol-policy/).

**Security requirements**

As a standard [security measure for data collection](https://docs.newrelic.com/docs/accounts-partnerships/accounts/security/data-security), your app server must support SHA-2 (256-bit). SHA-1 is not supported.

**Use of other monitoring software**

If your application uses other application monitoring software besides our agent, we cannot guarantee that our agent will work correctly and we cannot offer technical support. For more information, see [Errors while using other monitoring software](https://docs.newrelic.com/docs/apm/new-relic-apm/troubleshooting/errors-while-using-new-relic-apm-alongside-other-apm-software).

## Built-in instrumentation [#auto-instrumented]

After you [install the Java agent](https://docs.newrelic.com/docs/agents/java-agent/installation/install-java-agent), it automatically instruments many popular frameworks and libraries. With automatic instrumentation, the agent collects rich data out of the box, and data will show up in your New Relic dashboards within minutes of installation. Even if your library is not automatically instrumented, you can still collect data with [custom instrumentation](https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/java-custom-instrumentation) and the [Java agent API](https://docs.newrelic.com/docs/agents/java-agent/api-guides/guide-using-java-agent-api).

The agent automatically instruments these frameworks and libraries:

**App/Web servers**

The agent automatically instruments the following app/web servers. To install the Java agent on supported app/web servers, see [Install the Java agent](https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation).

-   Glassfish 6.0 to latest
-   JBoss 7.0 to latest
-   Jetty 7.0.0 to latest
-   Mule 3.4.0 to latest
-   Netty 3.3.0.Alpha1 to 5.0.0.Alpha1 (exclusive)
-   Netty Reactor 0.7.0.RELEASE to latest
-   Netty Reactor HTTP 1.0.0 to latest
-   Open Liberty 21.0.0.12 to latest
-   Play 2.4.0-M3 to latest
-   Resin 3.1.9 to latest
-   Spray 1.3.1 to latest
-   Tomcat 7.0.0 to latest
    -   Tomcat v7.0.0 - v7.0.69 are only supported by Java agents prior to v3.43.0
    -   Tomcat v7.0.70 - v7.0.75 and v8.0.0 - v8.0.41 are only supported by Java agents prior to v3.43.0
    -   Tomcat v8.5.0 - v8.5.11 are only supported by Java agents prior to v3.43.0;
-   Undertow 1.1.0.Final to latest
-   WebLogic 12.1.2.1 to 14.1.x
-   WebSphere 8 to 9 (exclusive)
-   WebSphere Liberty 8.5 to latest
-   Wildfly 8.0.0.Final to latest

**Frameworks**

The agent automatically instruments the following frameworks. To install the Java agent on supported frameworks, see [Install the Java agent](https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation).

-   Akka 2.4.10 to latest
-   Apache Camel 3.9.0 to latest
-   AWS Firehose 2.1.0 to latest
-   AWS Kinesis 1.11.106 to latest
-   AWS Lambda 1.11.280 to latest
-   AWS Lambda Core 1.1.0 to latest
-   AWS S3 1.9.0 to latest
-   AWS SNS 1.11.12 to latest
-   AWS SQS 1.10.44 to latest
-   Cats Effect 3.3.0 to 3.3.4 (exclusive)
-   Cats Effect v2 2.1 to 3.0 (exclusive)
    -   Scala 2.12: 2.1 to 3.0 (exclusive)
    -   Scala 2.13: 2.1 to 3.0 (exclusive)
-   Cats Effect v3 3.2 to 3.3 (exclusive)
    -   Scala 2.12: 3.2 to 3.3.4
    -   Scala 2.13: 3.2 to 3.3.4
-   CXF 2.1.3 to latest
-   EJB 6.0 to latest
-   Grails 2.0 to 3.0.0.RC1 (exclusive)
-   GraphQL 16.0 to 21.0 (exclusive)
-   GraphQL Java 21.0 to latest
-   Hibernate 3.5 to 6.0.0.Alpha2 (exclusive)
-   Hystrix 1.3.15 to latest
-   JAX-RS 1.0 to latest
-   JCache API 1.0.0 to latest
-   Jersey 1.0.1 to 3.1 (exclusive)
-   Jersey Client 0.9 to latest
-   Micronaut 1.0.0 to latest
-   Micronaut Core Reactive 2.4.0 to latest
-   Micronaut Inject 1.0.0 to latest
-   Micronaut Router 1.0.0 to latest
-   Monix tasks 2.0.0 to latest
    -   Scala 2.12: 2.0.6 to latest
    -   Scala 2.13: 3.0.0 to latest
    -   Scala 3: 3.4.0 to latest
-   OpenTelemetry 1.26.0-alpha to latest
-   Pekko 1.0.0 to latest
-   Pekko Http 1.0.0 to latest
    -   Scala 2.13: 1.0.0 to latest
    -   Scala 3: 1.0.0 to latest
-   Pekko Http Core 1.0.0 to latest
    -   Scala 2.13: 1.0.0 to latest
    -   Scala 3: 1.0.0 to latest
-   Play 2.4.0-M3 to latest
-   Portlet 3.0.0 to latest
-   Quartz Scheduler 1.7.2 to latest
-   RESTEasy 2.2-RC-1 to latest
-   Servlet 2.3 to latest
-   Spray 1.3.1 to latest
-   Spring 3.0.0 to latest
-   Spring AOP 2.0.3 to latest
-   Spring Batch 4.0.0.RELEASE to 6.0.0 (exclusive)
-   Spring Boot Actuator 3.0.0 to 4.0.0-M1 (exclusive)
-   Spring Web Services 1.5.7 to 4.0.0 (exclusive)
-   Spring WebFlux 5.0.0.RELEASE to latest
-   Struts 2.0 to latest
-   Vertx 3.2.0 to 5.1.0 (exclusive)
-   ZIO 1.0.9 to latest
    -   Scala 2.13: 1.0.9 to latest
-   JSF (Java Server Faces)

**HTTP libraries**

The agent automatically instruments the following HTTP libraries.

-   Akka Http 2.4.5 to latest
-   Akka Http Core 0.4 to latest
-   Apache HttpAsyncClient 4.1 to latest
-   Apache Httpclient 3.1-rc1 to latest
-   Async Http Client 2.0.0-RC1 to latest
-   Blaze Client 0.21 to 0.24.0 (exclusive)
    -   Scala 2.12: 0.21.0 to 0.24.0 (exclusive)
    -   Scala 2.13: 0.21.0 to 0.24.0 (exclusive)
-   Blaze Server 0.21 to 0.24.0 (exclusive)
    -   Scala 2.12: 0.21.0 to 0.24.0 (exclusive)
    -   Scala 2.13: 0.21.0 to 0.24.0 (exclusive)
-   Ember Client 0.23.0 to 0.24.0 (exclusive)
-   Ember Server 0.23.0 to 0.24.0 (exclusive)
-   gRPC 1.4.0 to latest
-   HttpUrlConnection 0 to latest
-   Java HttpClient 11 to latest
-   Micronaut HTTP 1.3.0 to latest
-   Micronaut HTTP Client 2.0.0 to 5.0.0 (exclusive)
-   Micronaut Http Netty 1.0.0 to 5.0.0 (exclusive)
-   Micronaut Http Server Netty 2.0.0 to latest
-   Ning AsyncHttpClient 1.0 to 2.0.0 (exclusive)
-   OKHttp 3.6.0 to 4.4.0 (exclusive)
-   Play WS 2.6.0 to latest
    -   Scala 2.13: 2.7.3 to latest
    -   Scala 2.12: 2.6.0 to latest
-   Spray 1.3.1 to latest
-   Spring RestTemplate 6.0.0 to 7.0.0 (exclusive)
-   Spring Webclient 5.0.0.RELEASE to latest
-   Spring Webflux 5.0.0.RELEASE to latest
-   STTP 2.2.3 to latest
    -   Scala 2.12: 2.2.3 to latest
    -   Scala 2.13: 2.2.3 to latest

**Logging libraries**

The agent automatically instruments the following logging libraries. For more information about the Java agent's logging solutions, including
log forwarding and logs in context, see our [logging-specific documentation](https://docs.newrelic.com/docs/logs/logs-context/java-configure-logs-context-all/).

-   Glassfish JUL Extension 7.0.0 to latest
-   Java Logging 8 to latest
-   JBoss Logging 1.3.0 to latest
-   Log4j Layout Template JSON 2.14.0 to latest
-   Log4j-1 1.2.17 to latest
-   Log4j2 2.6 to latest
-   Logback 1.1.0 to latest

**Messaging**

The agent automatically instruments the following messaging services. For instructions, see [Install the Java agent](https://docs.newrelic.com/docs/agents/java-agent/installation/java-agent-manual-installation).

-   ActiveMQClient 5.8.0 to latest

-   AWS SNS 1.11.12 to latest

-   AWS SQS 1.10.44 to latest

-   Azure Service Bus 7.15.0 to latest

-   JMS 1.1 to latest

-   RabbitAMQP 2.7.0 to latest

-   Spring JMS 0 to latest

-   Spring Kafka 2.2.0.RELEASE to latest

    The Java agent instruments the following Kafka libraries. Not all Kafka instrumentation is enabled by default. See our [Kafka documentation](docs/apm/agents/java-agent/instrumentation/java-agent-instrument-kafka-message-queues/) for more information.

-   Kafka Clients Config 1.1.0 to latest

-   Kafka Clients Heartbeat 0.10.1.0 to 2.5.0 (exclusive)

-   Kafka Clients Metrics 0.10.0.0 to latest

-   Kafka Clients Node Metrics 1.0.0 to latest

-   Kafka Clients Spans 0.11.0.0 to latest

-   Kafka Clients Spans Consumer 2.0.0 to 4.0.0 (exclusive)

-   Kafka Connect Metrics 1.0.0 to latest

-   Kafka Connect Spans 2.0.0 to latest

-   Kafka Streams Metrics 1.0.0 to latest

-   Kafka Streams Spans 2.0.0 to latest

**Datastores**

New Relic currently supports MySQL and PostgreSQL to capture explain plans for slow database queries.

-   Generic JDBC (any JDBC compliant driver)
-   Anorm 2.3-M1 to 2.5 (exclusive)
-   AWS v1 DynamoDB 1.11.106 to latest
-   AWS v2 DAX 2.0.0 to latest
-   AWS v2 DynamoDB 2.1.0 to latest
-   Cassandra 3.0.0 to latest
-   Couchbase 2.4.0 to latest
-   DB2 9.1 to latest
-   Derby 10.11.1.1 to latest
-   Flyway 8.0.0 to latest
-   H2 1.0.57 to latest
-   H2 R2DBC 0 to latest
-   HikariCP 2.4.0 to latest
-   HSQLDB 1.7.2.2 to latest
-   Jedis 1.4.0 to latest
-   jTDS 1.2 to latest
-   Lettuce 4.2.1.Final to latest
-   MariaDB Java Client (3.0.2-rc,) to latest
-   MariaDB R2DBC 1.0.2 to latest
-   MongoDB 4.2.0 to 5.6.0 (exclusive)
-   MongoDB async clients 3.4.0 to 4.2.0 (exclusive)
-   MongoDB sync clients 3.1.0-rc0 to latest
-   MSSQL R2DBC 0.8.0 to latest
-   MySQL 3.0.8 to latest
-   MySQL R2DBC 0.8.2 to latest
-   Oracle JDBC 5 to latest
-   Oracle R2DBC 0.0.0 to latest
-   PostgreSQL 8.0-312.jdbc3 to latest
-   PostgreSQL R2DBC 0.9.0 to latest
-   Slick 3.0.0 to latest
-   Solr 5.1.0 to 10.0.0 (exclusive)
-   Spymemcached 2.11 to latest
-   SQLServer jdk6 to latest
-   Vertx Sql Client 4.4.2 to 5.0.0 (exclusive)

**Instance-level database information**

New Relic collects [instance details for a variety of databases and database drivers](https://docs.newrelic.com/docs/apm/applications-menu/features/analyze-database-instance-level-performance-issues). The ability to view specific instances and the types of database information in APM depends on your New Relic agent version.

New Relic's Java agent [versions 3.33.0 or higher](https://docs.newrelic.com/docs/release-notes/agent-release-notes/java-release-notes/java-agent-3330) support the following:

-   Any [compatible JDBC driver](#JDBC)
-   AWS v1 DynamoDB 1.11.106 to latest
-   AWS v2 DAX 2.0.0 to latest
-   AWS v2 DynamoDB 2.1.0 to latest
-   Cassandra 3.0.0 to latest
-   Jedis 1.4.0 to latest
-   MongoDB async clients 3.4.0 to 4.2.0 (exclusive)
-   MongoDB sync clients 3.1.0-rc0 to latest
-   Spymemcached 2.11 to latest

**AI Monitoring**

If you have version 8.12.0 or higher of Java agent, you can collect AI data from certain AI libraries and frameworks. See our [AI Monitoring documentation](https://docs.newrelic.com/docs/ai-monitoring/intro-to-ai-monitoring) for more information.

-   AWS Bedrock 2.20.157 to latest
-   MCP Java SDK 1.0.0 to latest
-   Spring AI Chat Completions 1.0.0-RC1 to latest
-   Spring AI Embeddings 1.0.0-M7 to latest

**Hosting services**

You can install the Java agent on a variety of hosting services, including ones not listed below. Here are detailed installation guides for particular hosting services:

-   [Google App Engine (GAE) flexible environment](https://docs.newrelic.com/docs/agents/java-agent/additional-installation/google-app-engine-flexible-installation-java#tomcat-example)
-   [Heroku](https://docs.newrelic.com/docs/agents/java-agent/heroku/java-agent-heroku)

**Other instrumented features**

-   Java Completable futures 8 to latest
-   Java Process 8 to latest
-   Java Server Faces 1.0 to latest
-   Java XML RPC 8 to latest
-   JSP 2.0 to latest
-   OpenEJB 3.0 to latest
-   OpenJPA 1.0 to latest
-   Scala 2.1.5 to latest

## Connect the agent to other New Relic products [#digital-intelligence-platform]

The Java agent integrates with other New Relic products to give you end-to-end visibility:

| Product                                                                                                                                                   | Capability                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Browser monitoring](https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/introduction-new-relic-browser)                             | The Java agent automatically injects the browser JavaScript agent when you [enable auto-instrumentation](https://docs.newrelic.com/docs/browser/new-relic-browser/installation/install-new-relic-browser-agent#select-apm-app). After enabling browser injection, you can view browser data in the [APM Summary page](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/apm-overview-page) and quickly switch between the APM and browser data for a particular app. For configuration options and manual instrumentation, see [browser monitoring and the Java agent](https://docs.newrelic.com/docs/agents/java-agent/instrumentation/page-load-timing-java). |
| [Infrastructure monitoring](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/getting-started/introduction-new-relic-infrastructure) | When you install the infrastructure and APM agents on the same host, they automatically detect one another. You can then view a list of hosts in the APM UI, and filter your hosts by APM app in our infrastructure UI. For more information, see [APM data in the infrastructure UI](https://docs.newrelic.com/docs/infrastructure/new-relic-infrastructure/data-instrumentation/new-relic-apm-data-infrastructure).                                                                                                                                                                                                                                                         |
| [New Relic dashboards](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/introduction-new-relic-one-dashboards)                | The Java agent sends default events and attributes to dashboards, or you can [run NRQL queries in the query builder](https://docs.newrelic.com/docs/query-your-data/explore-query-data/query-builder/use-advanced-nrql-mode-specify-data). You can also [record custom events](https://docs.newrelic.com/docs/insights/insights-data-sources/custom-data/insert-custom-events-new-relic-apm-agents) for advanced analysis.                                                                                                                                                                                                                                                    |
| [Synthetic monitoring](https://docs.newrelic.com/docs/synthetics/new-relic-synthetics/getting-started/introduction-new-relic-synthetics)                  | [Synthetic transaction traces](https://docs.newrelic.com/docs/synthetics/new-relic-synthetics/using-monitors/collect-synthetic-transaction-traces) connect requests from synthetic monitors to the underlying APM transaction.                                                                                                                                                                                                                                                                                                                                                                                                                                                |
