Install multiple Java versions and switch between them per terminal session with a single command.
Keep Kotlin, Gradle, or Maven versions aligned with project requirements without manually editing PATH.
Set up a consistent SDK environment on a new developer machine using a one-line install script.
Install with a single one-line terminal script on Linux or macOS, no extra tools required.
SDKMAN is a command-line tool for managing multiple versions of software development kits on Unix-based systems, including Linux and macOS. The problem it solves is a common one for developers: different projects often require different versions of the same tool, such as Java or Kotlin, and switching between them by hand is tedious and error-prone. SDKMAN lets you install as many versions as you need and switch between them with a single command. Installation is a one-liner run in a terminal: a small script is downloaded and executed, and SDKMAN sets itself up automatically. After that, you can use the sdk command to install a tool, list available versions, switch the active version, or remove one you no longer need. The full catalog of supported tools is listed on the SDKMAN website rather than in this repository. The README includes an important notice: the project is currently being rewritten in Rust under a separate repository. The shell-based codebase here will eventually become a thin launcher for those new Rust commands. At this point, only bug fixes are accepted in this repository, not new features, so the shell code should be considered in maintenance mode. For developers who want to contribute or run the tests, the project uses Gradle and writes its tests in a format called Cucumber, which describes expected behavior in plain-language scenarios. A JDK 11 installation is required for development work. The project is open-source and supported by backers and sponsors through Open Collective, with backend services hosted on DigitalOcean. The README does not include a license section, so license terms would need to be checked in the repository files directly.
← sdkman on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.