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.