A fast, cross-platform JVM toolchain manager written in Rust.
- Install any JDK version from Foojay with a single command
- Switch between installed JDK versions instantly via symlinks
- Uninstall JDKs cleanly, with automatic current-link fallback
- List locally installed Java versions
- Cross-platform — Linux, macOS (Intel + Apple Silicon), and Windows
Download the latest binary from Releases for your platform, or build from source:
cargo build --release# Install a JDK (defaults to Eclipse Temurin)
kopi install 21
# Install a specific distribution
kopi install 17 -d openjdk
# Switch the active JDK
kopi use 21
# List installed Java versions
kopi list
# Uninstall a JDK
kopi uninstall 17After installing, add these lines to your shell profile to activate kopi-managed Java:
export JAVA_HOME="$HOME/.kopi/jdks/current"
export PATH="$JAVA_HOME/bin:$PATH"Any distribution available through the Foojay Disco API, including:
- Eclipse Temurin (
temurin, default) - OpenJDK (
openjdk) - GraalVM (
graalvm) - and many others
- Rust stable (install via rustup)
cargo buildcargo testcargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warningsTranslation files live in locales/. Add new translations by creating a new locale file following the rust-i18n YAML format.
MIT — see LICENSE for details.