Which Java versions are LTS?
Java 8, 11, 17, 21 and 25 are long-term support releases.
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.
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
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.
Every feature release from Java 8 to Java 27 is available for compiling, running, testing and debugging.
Java 8, 11, 17, 21 and 25 — the versions most courses and companies standardise on.
Compile for an older release on a newer JDK with the language level in Project Structure.
Eclipse Temurin builds, and Azul Zulu for the short-lived releases that have no Temurin build.
Each project keeps its own JDK, so a Java 8 assignment and a Java 25 experiment live side by side.
Switch the JDK and run again to see how a program behaves or which features the compiler accepts.
Every feature release from Java 8 to Java 27, ready for compiling, running, testing and debugging.
| 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 |
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.
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.
Java 8, 11, 17, 21 and 25 are long-term support releases.
Yes. Java 8 projects compile and run on a Java 8 JDK, which many courses still require.
Yes. Set the language level in Project Structure and javac compiles for that release.
Eclipse Temurin for most releases and Azul Zulu for Java 9, 10, 12, 13, 14 and 15.
Open a tab and start coding
Free account, JDK 8–27, Maven, Gradle and Kotlin — nothing to install.
Create a free account