Multi-vendor
Install from Temurin, Amazon Corretto, or Azul Zulu. Pick the build your stack expects.
Cross-platform Java Version Manager
jvman manages Temurin, Corretto, and Zulu builds across Linux, macOS, and Windows. Set a global default, pin versions per project, or run a single command with any JDK.
Why jvman
Install from Temurin, Amazon Corretto, or Azul Zulu. Pick the build your stack expects.
A .jvman file in your repo pins the JDK. Walk into any directory and the right version activates.
java, javac, mvn-adjacent tools resolve through shims — no manual JAVA_HOME exports.
Browse installed versions, set globals, and remove old builds from a keyboard-driven terminal UI.
jvman exec runs any command with a specific JDK without touching your global or local settings.
Same workflow on Linux, macOS, and Windows. Single binary, no runtime dependencies.
Install
The jvman CLI and the Java shims live in different places. Install the CLI first, initialize, then add the shim directory to your PATH.
Pick a method, then verify with jvman version.
go install github.com/maskedsyntax/jvman/cmd/jvman@latest
export PATH="$HOME/go/bin:$PATH"
jvman version
# From GitHub Releases
tar -xzf jvman_*.tar.gz
sudo mv jvman /usr/local/bin/
jvman version
git clone https://github.com/maskedsyntax/jvman.git
cd jvman && go build -o jvman ./cmd/jvman
./jvman version
Creates config and Java shims in $HOME/.jvman/bin.
jvman init
For java, javac, etc. — not the jvman CLI.
export PATH="$HOME/go/bin:$PATH" # jvman CLI (Go install only)
export PATH="$HOME/.jvman/bin:$PATH" # java, javac, jar, …
Commands
jvman install 21
Install Temurin JDK 21
jvman install 17 -v corretto
Install Amazon Corretto 17
jvman global 21
Set the system-wide default JDK
jvman use 17
Write a project-local .jvman file
jvman list
Show installed and available versions
jvman tui
Open the interactive version manager
JAVA_HOME?jvman is open source and free to use. Star the repo, file issues, or send a PR.