Site icon ni18 Blog

How to Fix “Fatal Error: Release Version 21 Not Supported” in Java

If you’re a Java developer, you might have come across the frustrating error: “Fatal error compiling: error: release version 21 not supported” while working on a Maven project. This error typically pops up when you’re trying to compile a project using Java 21, but something in your setup isn’t aligned. Don’t worry—this guide will explain why this error happens, how to fix it, and how to prevent it.

What Causes the “Release Version 21 Not Supported” Error?

This error occurs when Maven tries to compile your Java project with a configuration that specifies Java 21 as the target release, but the Java Development Kit (JDK) or Maven setup doesn’t support it. Here are the most common reasons:

Example Error Message

Here’s what the error typically looks like in your terminal or IDE:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project my-project: Fatal error compiling: error: release version 21 not supported -> [Help 1]

This error can halt your build process, but it’s fixable with the right steps.

Step-by-Step Guide to Fix the Error

Let’s walk through the solutions to resolve the “release version 21 not supported” error. Follow these steps in order, checking if the issue is resolved after each one.

Step 1: Verify Your JDK Version

The error often occurs because your JDK is older than Java 21. To confirm:

  1. Check Your Java Version:
    Open a terminal and run: java -version javac -version
    • Look for output like: openjdk version "21.0.2" 2024-01-16.
    • If the version is lower than 21 (e.g., Java 17 or 11), you need to update your JDK.
  2. Install JDK 21:
    • Download Java 21 from Oracle’s official website or an OpenJDK distribution like Eclipse Temurin.
    • Install it and ensure it’s the default JDK.
  3. Update JAVA_HOME:
    • Set the JAVA_HOME environment variable to point to JDK 21. For example:
      • On Windows: set JAVA_HOME=C:\Program Files\Java\jdk-21
      • On Linux/macOS: export JAVA_HOME=/path/to/jdk-21
    • Verify by running echo $JAVA_HOME (Linux/macOS) or echo %JAVA_HOME% (Windows).
    • Open a new terminal window to apply changes, as environment variables don’t update in existing sessions.
  4. Restart Your IDE: If you’re using IntelliJ, VS Code, or Eclipse, close and reopen the IDE to ensure it uses the updated JDK.

Step 2: Update Maven Compiler Plugin

The Maven Compiler Plugin might be outdated or misconfigured. Here’s how to fix it:

  1. Check Your pom.xml File:
    Open your project’s pom.xml and look for the Maven Compiler Plugin configuration. It might look like this: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>21</source> <target>21</target> <release>21</release> </configuration> </plugin> </plugins> </build>
  2. Update Plugin Version:
    • Ensure the maven-compiler-plugin version is at least 3.11.0, as older versions may not fully support Java 21. The latest version as of 2025 is 3.14.0.
    • Update it to:<version>3.14.0</version>
  3. Set Correct Java Version:
    • In the <properties> section of pom.xml, add or update:<properties> <maven.compiler.release>21</maven.compiler.release> </properties>
    • Alternatively, ensure <source> and <target> are set to 21 in the plugin configuration, but using <maven.compiler.release> is preferred for Java 9+ to avoid API incompatibility issues.
  4. Remove Redundant Configurations:
    • If you’re using <maven.compiler.release>, you don’t need <source> and <target> in the plugin configuration to avoid conflicts.
  5. Run Maven Clean:
    • Run mvn clean install in the terminal to refresh the build.

Step 3: Configure Your IDE

If you’re using an IDE like IntelliJ, misconfigurations can cause this error. Here’s how to fix it:

  1. Check Project SDK:
    • In IntelliJ, go to File > Project Structure > Project.
    • Ensure the Project SDK is set to JDK 21.
    • Set the Project language level to 21.
  2. Check Module Settings:
    • In File > Project Structure > Modules > Sources, ensure the Language level is 21 for all modules.
  3. Update Java Compiler Settings:
    • Go to File > Settings > Build, Execution, Deployment > Compiler > Java Compiler (Windows) or IntelliJ IDEA > Preferences (macOS).
    • Set the Project bytecode version to 21.
    • Remove any per-module bytecode versions that override the project settings.
  4. Check .idea/misc.xml:
    • Open the .idea/misc.xml file in your project.
    • Ensure the languageLevel is set to JDK_21, not JDK_X or an older version. For example:<component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="21" project-jdk-type="JavaSDK">
    • Save and re-import the project if needed.
  5. Re-import Maven Project:
    • In IntelliJ, click the Maven icon in the sidebar and select Reimport All Maven Projects.
    • Alternatively, delete the .idea folder and .iml file, then re-open the project to reset configurations.

Step 4: Fix Docker Builds (If Applicable)

If you’re building your project in a Docker container, the error might stem from an incompatible Docker image. For example:

Step 5: Verify Maven Version

An outdated Maven version can cause compatibility issues. To check and update:

  1. Check Maven Version:
    • Run mvn -v in the terminal.
    • Ensure you’re using Maven 3.9.0 or higher (3.9.8 is recommended in 2025).
  2. Update Maven:
  3. Verify Maven Uses JDK 21:
    • The mvn -v command should show Java version 21. If not, ensure JAVA_HOME points to JDK 21.

Step 6: Test Your Build

After applying the fixes, test your project:

Common Scenarios Where This Error Occurs

Here are specific cases where the error might appear and how to address them:

Scenario 1: Upgrading from Java 17 to Java 21

Scenario 2: Building on CI/CD Platforms (e.g., Jenkins, Railway)

Scenario 3: Spring Boot 3.2+ Projects

Scenario 4: Minecraft Mod Development

Troubleshooting Tips

If the error persists, try these additional checks:

Common Fixes Table

IssueSolution
Outdated JDKInstall JDK 21 and update JAVA_HOME.
Old Maven Compiler PluginUse version 3.14.0 and set <maven.compiler.release>21</maven.compiler.release>.
IDE MisconfigurationSet Project SDK and language level to 21 in IntelliJ or other IDEs.
Docker Image IncompatibilityUse maven:3.9.8-eclipse-temurin-21 and openjdk:21 in Dockerfile.
CI/CD Environment IssueConfigure JDK 21 or set NIXPACKS_JDK_VERSION=21 in the pipeline.

Preventing the Error in Future Projects

To avoid this error in future Java projects:

FAQs About the “Release Version 21 Not Supported” Error

Why does this error mention Java 21 when I’m using a different version?

The error occurs because your pom.xml or build configuration specifies Java 21, but the JDK used by Maven or your IDE is older. Update your JDK and configurations to match.

Can I use an older Maven Compiler Plugin with Java 21?

No, older versions (e.g., 3.8.1) may not fully support Java 21. Use version 3.11.0 or higher, preferably 3.14.0.

How do I know which JDK Maven is using?

Run mvn -v in the terminal. It shows the Java version and JAVA_HOME path used by Maven.

What if I’m using Gradle instead of Maven?

For Gradle, update the build.gradle file to use Java 21:
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}

Conclusion: Get Your Java Project Back on Track

The fatal error: release version 21 not supported error can be a roadblock, but it’s straightforward to fix once you identify the mismatch in your JDK, Maven, or IDE setup. By updating your JDK to version 21, configuring the Maven Compiler Plugin correctly, and ensuring your IDE or Docker environment aligns, you can resolve this issue in minutes.

Ready to fix your project? Start by checking your JDK version and updating your pom.xml. If you’re still stuck, share your error details in the comments below, and we’ll help you troubleshoot!

Resource: For more Maven troubleshooting, visit Apache Maven’s Official Compiler Plugin Documentation.

Exit mobile version