A cross-platform Java version manager inspired by nvm, written in Go, for installing and switching between JDK distributions.
jabba is a command-line Java version manager that allows developers to easily install, manage, and switch between multiple versions and distributions of the JDK. It solves the problem of juggling different Java environments across projects and operating systems by providing a unified interface similar to nvm for Node.js.
Java developers, DevOps engineers, and teams working across multiple projects or platforms who need to manage different JDK versions and distributions efficiently.
Developers choose jabba for its extensive JDK distribution support, cross-platform consistency, and simple CLI that eliminates the manual hassle of managing Java installations and environment variables.
(cross-platform) Java Version Manager
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple JDK providers including Oracle, Adopt OpenJDK, Zulu, GraalVM, and more, as listed in the features, offering flexibility in choosing JDK implementations.
Works seamlessly on macOS, Linux, and Windows with unified CLI commands, abstracting OS-specific differences in JDK management.
Uses semver ranges for precise version control, enabling easy listing and installation of JDK versions with commands like 'jabba ls-remote zulu@~1.8.60'.
Allows defining JDK versions per project using .jabbarc files, ensuring consistent environments across team members, as mentioned in the usage section.
Designed for Docker usage, with examples showing JDK installation in builds without including the manager in final images, optimizing image size.
The Homebrew package is currently broken, forcing macOS users to rely on shell script installation, which is less integrated and convenient.
Lacks built-in functionality for setting a global JDK; requires manual system-level changes using platform-specific commands, as detailed in the FAQ for Windows and Linux.
Installation involves piping curl or wget output directly to bash, which can be a security concern in restricted environments or if the source is compromised.
Only supports the latest version of Oracle JDK, not older or specific releases, which may not meet needs for long-term support or version locking.