JDK versions

Every JDK from 8 to 27 switch versions per project

Coursework pinned to Java 8, a library that needs Java 17, a language feature from the latest release — pick the JDK for each project and it is already installed on the server.

  • 20 JDKs
  • 5 LTS releases
  • A JDK per project
record Point(int x, int y) {}

public class Main {
    static String describe(Object value) {
        return switch (value) {
            case Point(int x, int y) when x == y -> "diagonal point " + x;
            case Point(int x, int y) -> "point " + x + "," + y;
            case String text -> "text of length " + text.length();
            default -> "something else";
        };
    }

    public static void main(String[] args) {
        System.out.println(describe(new Point(3, 3)));
        System.out.println(describe("hello"));
    }
}

Record patterns in switch need JDK 21 or newer. Switch the project to JDK 17 and the compiler explains what is missing.

Built on the tools Java and Kotlin developers already trust

Java 8 Java 11 Java 17 Java 21 Java 25 Kotlin 2 Maven Gradle Gradle Kotlin DSL Maven Central JUnit 5 Eclipse JDT google-java-format Step debugger
JDK versions

What you get

Run Java online on any JDK from 8 to 27: Java 8, 11, 17, 21 and 25 LTS and every release in between. Switch the JDK and language level per project in seconds.

  • Twenty JDKs

    Every feature release from Java 8 to Java 27 is available for compiling, running, testing and debugging.

  • All LTS releases

    Java 8, 11, 17, 21 and 25 — the versions most courses and companies standardise on.

  • Language level

    Compile for an older release on a newer JDK with the language level in Project Structure.

  • Temurin and Zulu

    Eclipse Temurin builds, and Azul Zulu for the short-lived releases that have no Temurin build.

  • Per project

    Each project keeps its own JDK, so a Java 8 assignment and a Java 25 experiment live side by side.

  • Same code, different JDK

    Switch the JDK and run again to see how a program behaves or which features the compiler accepts.

On the server

Twenty JDKs, five of them LTS

Every feature release from Java 8 to Java 27, ready for compiling, running, testing and debugging.

Available JDK versions
Version Support Distribution
Java 27 Feature release Eclipse Temurin
Java 26 Feature release Eclipse Temurin
Java 25 LTS Eclipse Temurin
Java 24 Feature release Eclipse Temurin
Java 23 Feature release Eclipse Temurin
Java 22 Feature release Eclipse Temurin
Java 21 LTS Eclipse Temurin
Java 20 Feature release Eclipse Temurin
Java 19 Feature release Eclipse Temurin
Java 18 Feature release Eclipse Temurin
Java 17 LTS Eclipse Temurin
Java 16 Feature release Eclipse Temurin
Java 15 Feature release Azul Zulu
Java 14 Feature release Azul Zulu
Java 13 Feature release Azul Zulu
Java 12 Feature release Azul Zulu
Java 11 LTS Eclipse Temurin
Java 10 Feature release Azul Zulu
Java 9 Feature release Azul Zulu
Java 8 LTS Eclipse Temurin
How it works

Under the hood

  1. 01

    Why the JDK version matters

    Language features, library APIs and default behaviour change between releases. Matching the JDK of a course, a book or a production system avoids code that compiles on one machine and fails on another.

  2. 02

    How to switch

    Choose the JDK in New Project, or open Project Structure with Ctrl+Alt+Shift+S and pick another JDK and language level. Maven and Gradle projects use the selected JDK for their builds as well.

FAQ

Questions, answered

Which Java versions are LTS?

Java 8, 11, 17, 21 and 25 are long-term support releases.

Is Java 8 still available?

Yes. Java 8 projects compile and run on a Java 8 JDK, which many courses still require.

Can a project use a newer JDK but an older language level?

Yes. Set the language level in Project Structure and javac compiles for that release.

Which JDK builds are used?

Eclipse Temurin for most releases and Azul Zulu for Java 9, 10, 12, 13, 14 and 15.