FREEDOM251

Freedom251 › Runtime Version Managers

SDKMAN!

Free plan APILinuxMacWindows

Visit SDKMAN! Alternatives

SDKMAN!'s own site

What SDKMAN! is

SDKMAN! is a free command-line interface and API for managing Software Development Kits in the JVM ecosystem. Users can install, uninstall, list, switch, upgrade and inspect SDK versions, or set a default. Supported options include Java, Scala, Kotlin, Groovy, Ant, Gradle, Maven, SBT, Spark, Spring Boot and Vert.x. Projects can record SDK versions in an .sdkmanrc file, with automatic switching available when entering a directory. Java distributions are pulled through the Foojay DISCO API. SDKMAN! runs on macOS and Linux, and on Windows through WSL or MSYS with MinGW; native Windows execution is not supported, and Cygwin is no longer supported. The installer requires curl, zip and unzip and works with Bash and ZSH. Its CI mode answers prompts, disables colored output and turns off self-updates. SDKMAN! is open source under the Apache 2.0 license. The project says it is intended for the JVM ecosystem rather than Go, Rust, Node.js, Python or Ruby toolchains. Security updates go only to the latest released CLI version.

Who it suits

SDKMAN! suits developers who manage JVM SDKs and tools from the command line, including those who want project-specific versions. Windows users need WSL or MSYS with MinGW rather than native Windows execution.

What it does well

  • Manages versions for a broad range of JVM tools
  • Project versions can be recorded in .sdkmanrc
  • Automatic switching is available when entering a directory
  • Free and open source under Apache 2.0
  • CI mode disables prompts and self-updates

What to know first

  • Windows requires WSL or MSYS with MinGW
  • Cygwin is no longer supported
  • Installer requires curl, zip and unzip
  • Security updates cover only the latest CLI release

Limits

SDKMAN! is intended for the JVM ecosystem and does not target Go, Rust, Node.js, Python or Ruby toolchains. On Windows, it cannot run natively and requires WSL or MSYS with MinGW.

Getting started

  1. Open https://sdkman.io/
  2. Use macOS, Linux or Windows through WSL or MSYS with MinGW
  3. Ensure curl, zip and unzip are available
  4. Use Bash or ZSH
  5. Install and manage SDK versions through the command-line interface

Verdict

SDKMAN! is focused on JVM SDK and tool version management, with project pinning and automatic switching options. It is not intended for Go, Rust, Node.js, Python or Ruby toolchains.

Questions

Is SDKMAN! free?

Yes. It has a free plan and is open source under the Apache 2.0 license.

Which systems does SDKMAN! support?

It supports macOS and Linux. Windows use requires WSL or MSYS with MinGW; native Windows and Cygwin are not supported.

What can SDKMAN! manage?

It manages JVM SDKs and tools including Java, Scala, Kotlin, Groovy, Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot and Vert.x.

Can projects pin SDK versions?

Yes. An .sdkmanrc file can define project SDK versions, with automatic switching when entering the directory.

Does it work in CI?

Yes. Its installer has a CI mode that answers prompts, disables colored output and turns off self-updates.

Facts from SDKMAN!'s own pages

CI mode
CI mode answers prompts, disables colored output and turns off self-updates. · sdkman.io, 1 Oct 2026
Community support
The project identifies its Discord #vendors channel as the fastest way for vendors to get help. · sdkman.io, 30 Sept 2026
Dependencies
The tool is written in Rust and Bash and requires curl, zip and unzip. · sdkman.io, 1 Oct 2026
Ecosystem limit
SDKMAN! is intended for the JVM ecosystem and is not the right home for Go, Rust, Node.js, Python or Ruby toolchains. · sdkman.io, 30 Sept 2026
Installation platforms
SDKMAN! supports macOS, Linux and Windows through WSL or Git Bash with MinGW. · sdkman.io, 30 Sept 2026
Interface
It provides a command-line interface and an API. · sdkman.io, 1 Oct 2026
Java distributions
Java distributions are pulled automatically from the Foojay DISCO API. · sdkman.io, 1 Oct 2026
JDK integration
Java distributions are pulled automatically from the Foojay DISCO API. · sdkman.io, 30 Sept 2026
JVM ecosystem
It supports JVM SDKs and tools including Java, Scala, Kotlin, Groovy, Ant, Gradle, Maven, SBT, Spark, Spring Boot and Vert.x. · sdkman.io, 30 Sept 2026
Open source
SDKMAN! is licensed under Apache 2.0. · sdkman.io, 1 Oct 2026
Operating systems
SDKMAN! operates on macOS, Linux and Windows through Windows Subsystem for Linux. · sdkman.io, 1 Oct 2026
Project environments
An .sdkmanrc file can define SDK versions for a project and can install missing versions. · sdkman.io, 1 Oct 2026
Purpose
SDKMAN! manages multiple Software Development Kits on Unix systems. · sdkman.io, 1 Oct 2026
Scope limitation
SDKMAN! is built for the JVM ecosystem and says Go, Rust, Node.js, Python and Ruby toolchains are not the right fit. · sdkman.io, 1 Oct 2026
Security support
Only the latest SDKMAN! CLI release receives security updates, and vulnerabilities can be reported privately through GitHub or [email protected]. · github.com, 1 Oct 2026
Shells
The installer supports Bash and ZSH shells. · sdkman.io, 1 Oct 2026
Supported SDKs
Supported JVM SDKs include Java, Scala, Kotlin and Groovy, plus tools such as Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot and Vert.x. · sdkman.io, 1 Oct 2026
Vendor publishing
Vendors can authenticate through the SDKMAN! State API and publish releases from CI/CD pipelines. · sdkman.io, 1 Oct 2026
Version management
Users can install, uninstall, list, switch and set default SDK versions. · sdkman.io, 1 Oct 2026
Version switching
Users can install, uninstall, list, use, default, upgrade and inspect SDK versions from the CLI. · sdkman.io, 30 Sept 2026
Vulnerability reporting
Security issues can be reported through GitHub Private Vulnerability Reporting or by emailing [email protected]. · github.com, 30 Sept 2026
Windows limitation
Windows cannot run SDKMAN! natively and requires WSL or MSYS+MinGW; Cygwin is no longer supported. · sdkman.io, 1 Oct 2026

Where SDKMAN! stands on Freedom251

Look at these too