Installing SDKMAN! on UNIX-like platforms is as easy as ever.
SDKMAN! installs smoothly on macOS, Linux, WSL, Cygwin,
Solaris and FreeBSD. We also support Bash and ZSH shells.
Simply open a new
terminal and enter:
$ curl -s "https://get.sdkman.io" | bash
Follow the instructions on-screen to complete installation.
Next, open a
new terminal or enter:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
Lastly, run the following code snippet to ensure that installation
$ sdk version
If all went well, the version should be displayed. Something like:
Several options exist for installing SDKMAN! on Windows today.
The first solution involves installing Windows Subsystem for Linux
(WSL) prior to attempting SDKMAN installation. You need a basic toolchain including bash, zip,
unzip, and curl (tar and gzip required for special cases). Most likely it will work out
of the box.
Another solution involves installing Cygwin prior to
attempting SDKMAN installation. For our software to function, we require
that Cygwin is installed with the same toolchain as described for WSL.
The third solution is for Git users using the Git Bash for Windows
environment. In order for this to work, the environment needs to be
supplemented with MinGW to add the
necessary toolchain to function.
Please be aware that as SDKMAN is written in bash, it requires a bash environment
to be present. SDKMAN can not be installed natively on Windows and requires WSL, Cygwin or MSYS+MinGW.
For the more adventurous among us, we have a beta channel.
All new CLI features will first be rolled out to this group of users for
Beta versions can be considered stable for the most part, but might
To join the beta program, simply update the the
~/.sdkman/etc/config file as follows:
Next, open a new terminal and perform a forced update with:
To leave the beta channel, simply set the above config back to
$ sdk selfupdate force
false and follow the same procedure.
UninstallationIn the unlikely event that you would like to
uninstall SDKMAN!, we don't have
an automated way of doing this yet. If you really do want to remove it from your
system, it is very easy to do so.The following will guide you through backing
up, then removing the entire installation from your system.
The last step involves editing and removing the initialisation snippet from your
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
$ rm -rf ~/.sdkman
files. If you use ZSH, remove it from the
.zshrc file. The snippet
of code to be removed looks something like this:
Once removed, you have successfully uninstalled SDKMAN! from your machine.
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
[[ -s "/home/dudette/.sdkman/bin/sdkman-init.sh" ]] && source "/home/dudette/.sdkman/bin/sdkman-init.sh"
Installing to a Custom LocationIt is possible to install SDKMAN!
to a custom location other than
$HOME/.sdkman. This can be achieved
by exporting your custom location as
SDKMAN_DIR prior to
Simply open a new terminal and enter:
For this to work it is vital that your user has full access rights to this
folder.It is also important that the folder does not exist as SDKMAN! will
attempt to create it.
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
Installing without Modifying Shell ConfigThere are situations where
it isn't appropriate for the installer to modify your shell config automatically,
such as unattended installs or when reinstalling. In those situations, appending
rcupdate=false as a parameter when downloading the installer will cause
it to skip that portion of the installation process.
$ curl -s "https://get.sdkman.io?rcupdate=false" | bash
That's all there is to it! Next we will look at Usage.