Tools Practical By Samson Tanimawo, PhD Published Mar 11, 2026 4 min read

jenv for JVM Version Management

JVM version per project.

Installing

Mac: brew install jenv. Linux: install from GitHub releases.

jenv add /path/to/jvm: register a JVM. jenv versions: list registered.

Multiple JVMs registered: 8, 11, 17, 21. Switch as needed.

Per-project version

jenv local 17.0.5: sets per-directory version. Stored in .java-version file.

Commit .java-version to git. Team uses same version automatically on cd.

Override with environment variable JAVA_VERSION if needed.

Global default

jenv global 21.0.1: sets workstation default.

Per-project overrides take precedence. Workstation default applies elsewhere.

Periodic review: are old global versions still needed?

Versus alternatives

asdf: multi-language (Java, Node, Python). Heavier; broader.

SDKMAN: similar to jenv. Auto-discovery and installation of JDKs.

Pick by other languages used. JVM-only: jenv. Polyglot: asdf.