ā¹ļø Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://sdkman.io/install/ |
| Last Crawled | 2026-04-06 01:09:49 (20 hours ago) |
| First Indexed | 2023-11-20 19:51:41 (2 years ago) |
| HTTP Status Code | 200 |
| Meta Title | Installation | SDKMAN! the Software Development Kit Manager |
| Meta Description | Installing SDKMAN! on UNIX is a breeze. It effortlessly sets up on macOS, Linux |
| Meta Canonical | null |
| Boilerpipe Text | Installing SDKMAN! on UNIX is a breeze. It effortlessly sets up on macOS, Linux
and Windows (with WSL). Plus, it's compatible with both Bash and ZSH shells.
Just launch a new terminal and type in:
curl
-s
"https://get.sdkman.io"
|
bash
Follow the on-screen instructions to wrap up the installation. Afterward, open a
new terminal or run the following in the same shell:
source
"
$HOME
/.sdkman/bin/sdkman-init.sh"
Lastly, run the following snippet to confirm the installation's success:
sdk version
You should see output containing the latest script and native versions:
SDKMAN
!
script:
5.19
.0
native:
0.5
.0
Windows installation
ā
For Windows, there are two installation routes:
WSL Approach
: Install Windows Subsystem for Linux (WSL) before attempting
SDKMAN installation. A basic toolset (bash, zip, unzip, curl) is necessary.
Most times, it works out of the box.
Git Bash Solution
: If you use Git Bash for Windows, you'll need to
supplement it with MinGW to have the required toolset for SDKMAN. There are
some issues with this approach, but it works for the most part.
note
Remember, SDKMAN requires a bash environment to run. On Windows, it can't be
natively installed; you need WSL or MSYS+MinGW. We no longer support Cygwin.
Beta channel
ā
To leave the beta channel, simply set
sdkman_beta_channel
to false in
~/.sdkman/etc/config
, then run:
sdk selfupdate force
Uninstallation
ā
Here is how you go about removing SDKMAN! from your system:
Optionally backup and then remove the installation:
tar
zcvf ~/sdkman-backup_
$(
date
+%F-%kh%M
)
.tar.gz
-C
~/ .sdkman
rm
-rf
~/.sdkman
Remove initialization snippet from your shell configs. Edit and remove the
initialisation snippet from your
.bashrc
,
.bash_profile
and/or
.profile
files. If you use ZSH, remove it from the
.zshrc
file. The snippet of code
to be removed looks something like this:
#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"
Once removed, you have successfully uninstalled SDKMAN! from your machine.
Install to a custom location
ā
Lastly, if you want to install SDKMAN! in a custom location, like
/usr/local/sdkman
, make sure you have full access rights and that the folder
doesn't exist. Export
SDKMAN_DIR
before installing:
export
SDKMAN_DIR
=
"/usr/local/sdkman"
&&
curl
-s
"https://get.sdkman.io"
|
bash
Install without modifying shell config
ā
And for installs on CI where shell config modification isn't appropriate, add
rcupdate=false
as a parameter when downloading the installer:
curl
-s
"https://get.sdkman.io?rcupdate=false"
|
bash
CI Mode
ā
For automated environments like CI/CD pipelines, SDKMAN! offers a dedicated CI
mode that optimizes the installation for non-interactive use:
curl
-s
"https://get.sdkman.io?ci=true"
|
bash
CI mode automatically:
Answers all prompts (sets
sdkman_auto_answer=true
)
Disables colored output for cleaner logs (sets
sdkman_colour_enable=false
)
Turns off the self-update feature to prevent unexpected updates (sets
sdkman_selfupdate_feature=false
)
You can combine this with other parameters as needed:
curl
-s
"https://get.sdkman.io?ci=true&rcupdate=false"
|
bash
That's all there is to it! Now let's dive into
Usage
. |
| Markdown | [Skip to main content](https://sdkman.io/install/#__docusaurus_skipToContent_fallback)
[](https://sdkman.io/)
[Docs](https://sdkman.io/install/)[JDKs](https://sdkman.io/jdks/)[SDKs](https://sdkman.io/sdks/)[Contributors](https://sdkman.io/contributors/)
- [Installation](https://sdkman.io/install/)
- [Usage](https://sdkman.io/usage/)
- [Vendors](https://sdkman.io/vendors/)
- Installation
On this page
# Installation
Installing SDKMAN! on UNIX is a breeze. It effortlessly sets up on macOS, Linux and Windows (with WSL). Plus, it's compatible with both Bash and ZSH shells.
Just launch a new terminal and type in:
```
curl -s "https://get.sdkman.io" | bash
```
Follow the on-screen instructions to wrap up the installation. Afterward, open a new terminal or run the following in the same shell:
```
source "$HOME/.sdkman/bin/sdkman-init.sh"
```
Lastly, run the following snippet to confirm the installation's success:
```
sdk version
```
You should see output containing the latest script and native versions:
```
SDKMAN!
script: 5.19.0
native: 0.5.0
```
## Windows installation[ā](https://sdkman.io/install/#windows-installation "Direct link to Windows installation")
For Windows, there are two installation routes:
1. **WSL Approach**: Install Windows Subsystem for Linux (WSL) before attempting SDKMAN installation. A basic toolset (bash, zip, unzip, curl) is necessary. Most times, it works out of the box.
2. **Git Bash Solution**: If you use Git Bash for Windows, you'll need to supplement it with MinGW to have the required toolset for SDKMAN. There are some issues with this approach, but it works for the most part.
note
Remember, SDKMAN requires a bash environment to run. On Windows, it can't be natively installed; you need WSL or MSYS+MinGW. We no longer support Cygwin.
## Beta channel[ā](https://sdkman.io/install/#beta-channel "Direct link to Beta channel")
To leave the beta channel, simply set `sdkman_beta_channel` to false in `~/.sdkman/etc/config`, then run:
```
sdk selfupdate force
```
## Uninstallation[ā](https://sdkman.io/install/#uninstallation "Direct link to Uninstallation")
Here is how you go about removing SDKMAN! from your system:
1. Optionally backup and then remove the installation:
```
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
rm -rf ~/.sdkman
```
2. Remove initialization snippet from your shell configs. Edit and remove the initialisation snippet from your `.bashrc`, `.bash_profile` and/or `.profile` files. If you use ZSH, remove it from the `.zshrc` file. The snippet of code to be removed looks something like this:
```
#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"
```
Once removed, you have successfully uninstalled SDKMAN! from your machine.
## Install to a custom location[ā](https://sdkman.io/install/#install-to-a-custom-location "Direct link to Install to a custom location")
Lastly, if you want to install SDKMAN! in a custom location, like `/usr/local/sdkman`, make sure you have full access rights and that the folder doesn't exist. Export `SDKMAN_DIR` before installing:
```
export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
```
## Install without modifying shell config[ā](https://sdkman.io/install/#install-without-modifying-shell-config "Direct link to Install without modifying shell config")
And for installs on CI where shell config modification isn't appropriate, add `rcupdate=false` as a parameter when downloading the installer:
```
curl -s "https://get.sdkman.io?rcupdate=false" | bash
```
## CI Mode[ā](https://sdkman.io/install/#ci-mode "Direct link to CI Mode")
For automated environments like CI/CD pipelines, SDKMAN! offers a dedicated CI mode that optimizes the installation for non-interactive use:
```
curl -s "https://get.sdkman.io?ci=true" | bash
```
CI mode automatically:
- Answers all prompts (sets `sdkman_auto_answer=true`)
- Disables colored output for cleaner logs (sets `sdkman_colour_enable=false`)
- Turns off the self-update feature to prevent unexpected updates (sets `sdkman_selfupdate_feature=false`)
You can combine this with other parameters as needed:
```
curl -s "https://get.sdkman.io?ci=true&rcupdate=false" | bash
```
That's all there is to it! Now let's dive into [Usage](https://sdkman.io/usage/).
[NextUsage](https://sdkman.io/usage/)
- [Windows installation](https://sdkman.io/install/#windows-installation)
- [Beta channel](https://sdkman.io/install/#beta-channel)
- [Uninstallation](https://sdkman.io/install/#uninstallation)
- [Install to a custom location](https://sdkman.io/install/#install-to-a-custom-location)
- [Install without modifying shell config](https://sdkman.io/install/#install-without-modifying-shell-config)
- [CI Mode](https://sdkman.io/install/#ci-mode)
[](https://www.digitalocean.com/?refcode=d99e5747251d&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)
Ā© 2012 - 2026 SDKMAN! is Open Source Software licensed under [Apache 2](http://www.apache.org/licenses/LICENSE-2.0.html)
Logos and Design by [Daida Medina](https://github.com/dmesu) and [Sviatoslav Makhynko](https://github.com/SvMak)
[Status](http://status.sdkman.io/) |
| Readable Markdown | Installing SDKMAN! on UNIX is a breeze. It effortlessly sets up on macOS, Linux and Windows (with WSL). Plus, it's compatible with both Bash and ZSH shells.
Just launch a new terminal and type in:
```
curl -s "https://get.sdkman.io" | bash
```
Follow the on-screen instructions to wrap up the installation. Afterward, open a new terminal or run the following in the same shell:
```
source "$HOME/.sdkman/bin/sdkman-init.sh"
```
Lastly, run the following snippet to confirm the installation's success:
```
sdk version
```
You should see output containing the latest script and native versions:
```
SDKMAN!
script: 5.19.0
native: 0.5.0
```
## Windows installation[ā](https://sdkman.io/install/#windows-installation "Direct link to Windows installation")
For Windows, there are two installation routes:
1. **WSL Approach**: Install Windows Subsystem for Linux (WSL) before attempting SDKMAN installation. A basic toolset (bash, zip, unzip, curl) is necessary. Most times, it works out of the box.
2. **Git Bash Solution**: If you use Git Bash for Windows, you'll need to supplement it with MinGW to have the required toolset for SDKMAN. There are some issues with this approach, but it works for the most part.
note
Remember, SDKMAN requires a bash environment to run. On Windows, it can't be natively installed; you need WSL or MSYS+MinGW. We no longer support Cygwin.
## Beta channel[ā](https://sdkman.io/install/#beta-channel "Direct link to Beta channel")
To leave the beta channel, simply set `sdkman_beta_channel` to false in `~/.sdkman/etc/config`, then run:
```
sdk selfupdate force
```
## Uninstallation[ā](https://sdkman.io/install/#uninstallation "Direct link to Uninstallation")
Here is how you go about removing SDKMAN! from your system:
1. Optionally backup and then remove the installation:
```
tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman
rm -rf ~/.sdkman
```
2. Remove initialization snippet from your shell configs. Edit and remove the initialisation snippet from your `.bashrc`, `.bash_profile` and/or `.profile` files. If you use ZSH, remove it from the `.zshrc` file. The snippet of code to be removed looks something like this:
```
#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"
```
Once removed, you have successfully uninstalled SDKMAN! from your machine.
## Install to a custom location[ā](https://sdkman.io/install/#install-to-a-custom-location "Direct link to Install to a custom location")
Lastly, if you want to install SDKMAN! in a custom location, like `/usr/local/sdkman`, make sure you have full access rights and that the folder doesn't exist. Export `SDKMAN_DIR` before installing:
```
export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
```
## Install without modifying shell config[ā](https://sdkman.io/install/#install-without-modifying-shell-config "Direct link to Install without modifying shell config")
And for installs on CI where shell config modification isn't appropriate, add `rcupdate=false` as a parameter when downloading the installer:
```
curl -s "https://get.sdkman.io?rcupdate=false" | bash
```
## CI Mode[ā](https://sdkman.io/install/#ci-mode "Direct link to CI Mode")
For automated environments like CI/CD pipelines, SDKMAN! offers a dedicated CI mode that optimizes the installation for non-interactive use:
```
curl -s "https://get.sdkman.io?ci=true" | bash
```
CI mode automatically:
- Answers all prompts (sets `sdkman_auto_answer=true`)
- Disables colored output for cleaner logs (sets `sdkman_colour_enable=false`)
- Turns off the self-update feature to prevent unexpected updates (sets `sdkman_selfupdate_feature=false`)
You can combine this with other parameters as needed:
```
curl -s "https://get.sdkman.io?ci=true&rcupdate=false" | bash
```
That's all there is to it! Now let's dive into [Usage](https://sdkman.io/usage/). |
| Shard | 137 (laksa) |
| Root Hash | 17353804540545527937 |
| Unparsed URL | io,sdkman!/install/ s443 |