Phasing out Java 17 as a Scanner Runtime

We are deprecating Java 17 as a supported scanner runtime environment. This change is necessary because Java 17 is approaching its end-of-support from key vendors, and we are transitioning to support Java 21 and 25.

Key dates:

  • December 11th 2025: Java 17 is deprecated as a scanner runtime in SonarQube Server 2025.6.

  • December 19th 2025: Java 17 is deprecated as a scanner runtime in SonarQube Cloud.

  • July 2026: Java 17 is dropped as a scanner runtime for both SonarQube Cloud and SonarQube Server (SQS 2026.3 and following versions).

How to know if you are impacted by this change?

  • You ARE impacted by this change if you use a scanner without JRE auto-provisioning. You must take action to upgrade your custom JRE (see section below).

  • You are NOT impacted if you use a scanner with JRE auto-provisioning. Your scanner will automatically install the necessary updated JRE (Java 21).

How to know if you are using JRE auto-provisioning?

JRE auto-provisioning is used by default in current scanner versions, specifically SonarScanner CLI (v6.0+), SonarScanner for .NET (v7.0+), SonarScanner for Maven (v5.0+), SonarScanner for Gradle (v6.0+) and SonarScanner for NPM (v4.0+), SonarQube Scan GitHub Action (v4.0+), Scanner for Azure DevOps (for SQS, v7.0+ and SQC 3.0.0), Scanner CLI Docker (v11.0+), SonarQube Cloud Scan for Bitbucket (v3.0+), and SonarQube Server Scan for Bitbucket (v3.0+).

If you are using one of these versions and haven’t explicitly disabled the feature, it is active. You can validate that provisioning is in effect by inspecting the scanner logs and looking for ‘JRE provisioning’ messages. See JRE auto-provisioning in SonarQube Server and JRE auto-provisioning in SonarQube Cloud for more information.

NOT using JRE auto-provisioning? Here are the steps you must take:

SonarQube Cloud users:

  • You must upgrade your custom JRE to Java 21 or newer in all your CI/CD pipelines before July 2026. (This does not affect Automatic Analysis).

  • Alternatively, consider moving to JRE auto-provisioning to keep this requirement always up to date.

SonarQube Server users:

  • If you follow the LTA cycle: You will be able to use Java 17 in your CI/CD pipelines with 2026.1 LTA. You will need to upgrade your CI/CD pipelines before migrating to 2027.1.

  • If you typically use the latest SonarQube server version: You must upgrade your JRE to Java 21 or newer in all your CI/CD pipelines before migrating to 2026.3 (July 2026).

  • Alternatively, consider moving to JRE auto-provisioning to keep this requirement always up to date.

The documentation has been accordingly updated for SonarQube Server (SonarQube Server Scanner General Requirements). For SonarQube Cloud (SonarQube Cloud Scanner General Requirements) it will be updated after the release.

We understand this may cause some inconvenience and are committed to improving our product to create as little friction as possible. If you have any questions or concerns, please don’t hesitate to reach out.

Don’t hesitate to ask if you have an questions.

2 Likes

In the Server host requirements | SonarQube Server | Sonar Documentation of 2025.6 only Java 21 is mentioned. Are there still any limitations with Java 25?