EVERYTHING XIAOMI
Get listed
SDKMAN! logo

SDKMAN!

SDKMAN! is a free command-line tool and API for managing Software Development Kits in the JVM ecosystem.

Place
#20 of 30
Score
6.0
SDKMAN!'s website

What SDKMAN! is

SDKMAN! is a free command-line tool and API for managing Software Development Kits in the JVM ecosystem. From the CLI, users can install, uninstall, inspect, list, switch, upgrade and set default versions for SDKs and related tools. Supported options include Java, Scala, Kotlin, Groovy, Ant, Gradle, Maven, SBT, Spark, Spring Boot and Vert.x. Projects can record their 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 Windows users can use it through WSL or MSYS with MinGW. It does not run natively on Windows, and Cygwin is no longer supported. The installer requires curl, zip and unzip and works with Bash and ZSH. Its CI mode answers prompts, removes colored output and disables self-updates. SDKMAN! is open source under Apache 2.0. Security updates are limited to the latest released CLI version.

Good

  • Manages a broad set of JVM SDKs and tools.
  • Project versions can be recorded in .sdkmanrc.
  • Automatic switching can occur on directory entry.
  • CI mode suppresses prompts and colored output.
  • Free and open source under Apache 2.0.

Watch out

  • Windows requires WSL or MSYS with MinGW.
  • Cygwin is no longer supported.
  • Go, Rust, Node.js, Python and Ruby are out of scope.
  • Only the latest CLI release receives security updates.

Who it suits

SDKMAN! suits developers working with JVM SDKs and tools who want command-line version management or project-specific SDK settings. Windows users need WSL or MSYS with MinGW rather than a native Windows setup.

Verdict

SDKMAN! is focused on JVM development, with CLI version controls and project-level configuration. Check the Windows requirements and ecosystem scope before choosing it.

The facts

Each one read from SDKMAN!'s own pages, with the date it was checked.

What it does

CI mode
CI mode answers prompts, disables colored output and turns off self-updates.checked 1 Oct 2026
Community support
The project identifies its Discord #vendors channel as the fastest way for vendors to get help.checked 30 Sep 2026
Dependencies
The tool is written in Rust and Bash and requires curl, zip and unzip.checked 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.checked 30 Sep 2026
Interface
It provides a command-line interface and an API.checked 1 Oct 2026
Java distributions
Java distributions are pulled automatically from the Foojay DISCO API.checked 1 Oct 2026
JDK integration
Java distributions are pulled automatically from the Foojay DISCO API.checked 30 Sep 2026
JVM ecosystem
It supports JVM SDKs and tools including Java, Scala, Kotlin, Groovy, Ant, Gradle, Maven, SBT, Spark, Spring Boot and Vert.x.checked 30 Sep 2026
Open source
SDKMAN! is licensed under Apache 2.0.checked 1 Oct 2026
Operating systems
SDKMAN! operates on macOS, Linux and Windows through Windows Subsystem for Linux.checked 1 Oct 2026
Project environments
An .sdkmanrc file can define SDK versions for a project and can install missing versions.checked 1 Oct 2026
Purpose
SDKMAN! manages multiple Software Development Kits on Unix systems.checked 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.checked 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].checked 1 Oct 2026
Shells
The installer supports Bash and ZSH shells.checked 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.checked 1 Oct 2026
Vendor publishing
Vendors can authenticate through the SDKMAN! State API and publish releases from CI/CD pipelines.checked 1 Oct 2026
Version management
Users can install, uninstall, list, switch and set default SDK versions.checked 1 Oct 2026
Version switching
Users can install, uninstall, list, use, default, upgrade and inspect SDK versions from the CLI.checked 30 Sep 2026
Vulnerability reporting
Security issues can be reported through GitHub Private Vulnerability Reporting or by emailing [email protected].checked 30 Sep 2026

Where it runs

Installation platforms
SDKMAN! supports macOS, Linux and Windows through WSL or Git Bash with MinGW.checked 30 Sep 2026
Windows limitation
Windows cannot run SDKMAN! natively and requires WSL or MSYS+MinGW; Cygwin is no longer supported.checked 1 Oct 2026

Alternatives to SDKMAN!

All alternatives
  1. 1

    nvm

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  2. 2

    GHCup

    Free planWebLinuxmacOSSelf-hosted
    7.0Free plan
  3. 3

    Jabba

    Free planLinuxmacOSWindows
    6.6Free plan
  4. 4rustup logo

    rustup

    Free planLinuxmacOSWindows
    6.6Free plan
  5. 5

    axe-playwright

    Free planWebLinux
    6.4Free plan
  6. 6

    asdf

    Free planLinuxmacOS
    6.2Free plan