Install and switch
Download a distribution, install it under javm, and activate it in the current shell.
javm install 25
javm use 25Switch versions Install managed JDKs, discover existing installations, and activate the version your project needs in the current shell.
Native on Linux, macOS, and Windows · Bash, Zsh, Fish, Nushell, PowerShell, and CMD
$ javm use temurin@25
$ java --version
openjdk 25.0.x ...
Whether you need a fresh JDK, an existing installation, or a project-specific version, javm keeps the choice explicit.
Download a distribution, install it under javm, and activate it in the current shell.
javm install 25
javm use 25Switch versions Register a JDK already on your machine without copying or replacing it.
javm link system@25.0.1 /path/to/jdk
javm use system@25Link a JDK Commit a selector in .java-version and apply the project's JDK with javm use.
.java-version: temurin@25
javm useChoose a selector javm does not run a background service or rewrite the system Java. The shell integration applies the selected environment to the session that you are using.
javm lsSee JDKs already available locally, including managed and linked installations.
javm use temurin@25Activate a version, distribution, range, alias, or .java-version selector in the current shell.
javm deactivateRemove javm's session entries and restore the previous JAVA_HOME when available.
Find managed, linked, system, IntelliJ, Gradle, and other discovered installations.
javm lsDiscover local JDKs Browse Java distributions and versions from the Foojay DiscoAPI before installing.
javm ls-remote 25Browse the CLI reference Install javm, initialize your shell, and choose a JDK in a few commands.
Get started with javm