asdf vs Jabba
asdf
asdf-vm.comJabba
github.comSide by side
| Figure | asdf | Jabba |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Runtime Version Managers | 8.1 (#6) | 8.5 (#3) |
| Spec score · Development Environment Managers | 8.0 (#15) | 8.5 (#8) |
| Purpose | asdf is a tool version manager that uses one `.tool-versions` file to share exact tool versions with a project team. | Jabba is a Java version manager inspired by nvm and written in Go. |
| Shell support | The homepage lists Bash, ZSH, Fish, and Elvish support with completions available. | The README gives shell integration instructions for bash, zsh, and fish. |
| Version selection | asdf selects a tool version from `.tool-versions` files starting in the current directory and searching up toward the home directory. | Users can list remote JDKs, filter versions with semantic version ranges, install versions, and switch among installed versions. |
Plans
In their own words
asdf
asdf is a free, open-source version manager for Linux and macOS. It gives project teams one command interface and a shared `.tool-versions` file for selecting exact versions of multiple tools and runtimes. Plugins support tools such as Node.js, Ruby, and Elixir, while the plugin API allows additional tools. When a command runs, asdf searches for configuration from the current directory upward toward the home directory, then uses shims to launch the selected executable. Existing `.ruby-version`, `.nvmrc`, and `.node-version` files can be supported per plugin. Listed shell support includes Bash, ZSH, Fish, and Elvish, with completions. A GitHub Action uses `.tool-versions` in CI/CD workflows. Installation options include Homebrew, Zypper, Pacman, precompiled binaries, Go, and source builds. asdf manages tool versions rather than system packages or upstream dependencies. If no version is set, execution errors unless the tool is configured as `system`.
Jabba
Jabba is a free Java version manager written in Go for installing and switching among JDK versions on macOS, Linux and Windows. Its JDK index, powered by DiscoAPI, lists versions for the user's operating system and architecture. The README names distributions including Oracle, Adopt OpenJDK, Zulu, IBM SDK, GraalVM, OpenJDK, Liberica and Amazon Corretto. Users can list remote JDKs, filter versions with semantic version ranges, install versions and switch among those installed. A `.jabbarc` file can specify a project's JDK, while a default alias can select the version used in new terminals. Jabba can link to a system JDK and coexist with an existing Java installation. The README documents shell integration for bash, zsh and fish, plus installation through Homebrew, shell scripts, PowerShell, Scoop or Docker. Custom JDK downloads are also supported. Jabba does not switch Java globally on its own; the README gives manual platform-specific snippets instead. The repository describes Jabba as a community fork that is a work in progress and warns that some README instructions may be outdated. It is licensed under Apache-2.0.