Freedom251 › Runtime Version Managers
jEnv

What jEnv is
jEnv is an open-source command-line tool for managing Java environments and the JAVA_HOME variable on Linux and macOS. It lets developers choose among installed Java versions globally, for a directory, or for a shell session. The local command creates a .java-version file that can be committed to a Git project, allowing project-level version pinning. jEnv does not install Java; users install a JDK separately and register its location with jenv add. An export plugin can set JAVA_HOME, while optional plugins provide settings for Gradle, Maven, Ant, Leiningen, and sbt. Documentation covers Bash, Zsh, and Fish setup, with Homebrew installation guidance for macOS and Git-based installation for Linux. The project accepts external contributions and directs bug reports or feature requests to GitHub. Documentation notes reported Fish issues, and the maintainer describes Fish support as untested.
Who it suits
It suits developers on Linux or macOS who need to switch between installed Java versions for projects or shells. It is useful when build tools and JAVA_HOME need coordinated settings.
What it does well
- Global, directory, and shell version selection
- Project .java-version files
- JAVA_HOME export plugin
- Build-tool integration plugins
- Open-source project
What to know first
- Does not install Java
- Supports Linux and macOS only
- Fish support is reported as problematic
- Fish support is untested by maintainer
Verdict
jEnv provides version selection and project pinning for Java installations already on a machine. Its lack of Java installation and the documented Fish caveat should shape setup plans.
Facts from jEnv's own pages
- Build tool integrations
- Optional plugins support Gradle, Maven, Ant, Leiningen, and sbt. · github.com, 2 Oct 2026
- Installation
- The maker’s site documents source installation on Linux and OS X, and Homebrew installation on Mac OS X. · jenv.be, 2 Oct 2026
- Integrations
- Optional plugins can export Java settings for Gradle, Maven, Ant, Leiningen, and sbt. · github.com, 29 Sept 2026
- Issue reporting
- The maker directs users to create a GitHub issue to report bugs or missing features. · jenv.be, 2 Oct 2026
- JAVA_HOME
- It can set JAVA_HOME through its export plugin. · github.com, 2 Oct 2026
- Java installation
- jEnv does not install Java; users install Java with a platform appropriate package manager and add its location to jEnv. · github.com, 29 Sept 2026
- Java version switching
- It lets developers switch between Java versions on a development machine. · github.com, 29 Sept 2026
- JDK registration
- The jenv add command registers an existing Java installation; jEnv does not install Java for you. · github.com, 2 Oct 2026
- Known issue
- The project documentation says users have reported issues using jEnv with Fish. · github.com, 29 Sept 2026
- Linux installation
- The site documents installing jEnv from its Git repository on Linux. · jenv.be, 29 Sept 2026
- macOS installation
- The site documents installation on macOS using Homebrew. · jenv.be, 29 Sept 2026
- Maintainer
- The repository README lists Gildas Cuisinier as a maintainer. · github.com, 2 Oct 2026
- Open source
- The project is open source and welcomes external contributions. · jenv.be, 2 Oct 2026
- Project configuration
- A local version setting creates a .java-version file that can be checked into Git for a project. · github.com, 2 Oct 2026
- Purpose
- jEnv is a command-line tool for managing Java environments and switching between Java versions. · jenv.be, 2 Oct 2026
- Shells
- The maker’s site documents setup for Bash and Zsh; the repository README also gives Fish setup instructions and says Fish support is untested by the maintainer. · github.com, 2 Oct 2026
- Shell support
- The documentation gives setup instructions for Bash, Zsh, and Fish shells. · github.com, 29 Sept 2026
- Support
- The site directs users to GitHub to report bugs or request missing features. · jenv.be, 29 Sept 2026
- Version scopes
- Java versions can be configured globally, per directory, or for a shell session. · jenv, 2 Oct 2026
Where jEnv stands on Freedom251
- Runtime Version Managers#20 of 30
- Development Environment Managers#42 of 50