The SDKMAN! Command Line Interface

Related tags

Utility sdkman-cli
Overview

SDKMAN! CLI

The Software Development Kit Manager Command Line Interface

Build Status Latest Version Backers on Open Collective Sponsors on Open Collective Slack

SDKMAN is a tool for managing parallel Versions of multiple Software Development Kits on any Unix based system. It provides a convenient command line interface for installing, switching, removing and listing Candidates.

See documentation on the SDKMAN! website.

Installation

Open your favourite terminal and enter the following:

$ curl -s https://get.sdkman.io | bash

If the environment needs tweaking for SDKMAN to be installed, the installer will prompt you accordingly and ask you to restart.

Running the Cucumber Features

All SDKMAN's BDD tests describing the CLI behaviour are written in Cucumber and can be found under src/test/cucumber/sdkman. These can be run with Gradle by running the following command:

$ ./gradlew test

To perform development, you will need to have a JDK 8 or higher installed which can be obtained by running the following after installing SDKMAN:

$ sdk install java

Using Docker for tests

You can run the tests in a Docker container to guarantee a clean test environment.

$ docker build --tag=sdkman-cli/gradle .
$ docker run --rm -it sdkman-cli/gradle test

By running the following command, you don't need to wait for downloading Gradle wrapper and other dependencies. The test reports can be found under the local build directory.

$ docker run --rm -it -v $PWD:/usr/src/app -v $HOME/.gradle:/root/.gradle sdkman-cli/gradle test

Local Installation

To install SDKMAN locally running against your local server, run the following commands:

$ ./gradlew install
$ source ~/.sdkman/bin/sdkman-init.sh

Or run install locally with Production configuration:

$ ./gradlew -Penv=production install
$ source ~/.sdkman/bin/sdkman-init.sh

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Comments
  • sdkman reports offline mode (which is not)

    sdkman reports offline mode (which is not)

    $ sdk install springboot
    SDKMAN can't reach the internet so going offline. Re-enable online with:
    
      $ sdk offline disable
    
    sdk:local:70: ^[[01;31m^[[Kspringboot^[[m^[[K: can't create local array elements
    
    $ sdk version
    SDKMAN 3.2.4
    
    opened by gAmUssA 55
  • Bug: Unable to update

    Bug: Unable to update

    $ sdk version
    WARNING: SDKMAN is out-of-date and requires an update. Please run:
    
    sdk update
    
    ==== BROADCAST =================================================================
    * 02/07/18: Kscript 2.4.5 released on SDKMAN! #kscript
    * 28/06/18: Micronaut 1.0.0.M2 released on SDKMAN! #micronautfw
    * 27/06/18: Infrastructor 0.2.0 rolling out. With stronger encryption and new task progress UI.
    ================================================================================
    
    SDKMAN 5.6.4+305
    
    $ sdk update
    
    -bash: -1: substring expression < 0
    

    I'm using MacOS High Sierra.

    opened by rbatllet 45
  • 'list installed' command?

    'list installed' command?

    Hi,

    How to find what is installed with Sdkman?

    There doesn't seem to be a sdk list installed commands, and just calling sdk list simply shows all potential SDKs to install.

    Thanks.

    opened by eprozium 43
  • Add OpenJDK Java Options

    Add OpenJDK Java Options

    Feature Request: Offer OpenJDK options for Java.

    I know that you can manually install local versions, but this is a bit kludgy and doesn't take advantage of Sdkman tracking updates.

    enhancement 
    opened by pluttrell 40
  • Install java 8 fails on cygwin in some cases

    Install java 8 fails on cygwin in some cases

    On Cygwin, tried sdk install java and got following output:

    $ sdk install java
    
    Oracle requires that you agree with the Oracle Binary Code License Agreement
    prior to installation. The license agreement can be found at:
    
      http://www.oracle.com/technetwork/java/javase/terms/license/index.html
    
    Do you agree to the terms of this agreement? (Y/n): Y
    
    
    Downloading: java 8u111
    
    In progress...
    
    ######################################################################## 100.0%
    
    Repackaging java 8u111...
    -bash: /home/Jonathan/.sdkman/tmp/mbgywYdNTdwToa040cg3Azu3oUSUBGsp.bin: Device or resource busy
    mv: cannot stat '/cygdrive/c/temp/jdk': No such file or directory
    
    zip error: Nothing to do! (try: zip -qr /home/Jonathan/.sdkman/tmp/mbgywYdNTdwToa040cg3Azu3oUSUBGsp.zip . -i .)
    
    Done repackaging...
    mv: cannot stat '/home/Jonathan/.sdkman/tmp/mbgywYdNTdwToa040cg3Azu3oUSUBGsp.zip': No such file or directory
    unzip:  cannot find or open /home/Jonathan/.sdkman/archives/java-8u111.zip, /home/Jonathan/.sdkman/archives/java-8u111.zip.zip or /home/Jonathan/.sdkman/archives/java-8u111.zip.ZIP.
    rm: cannot remove '/home/Jonathan/.sdkman/archives/java-8u111.zip': No such file or directory
    
    Stop! The archive was corrupt and has been removed! Please try installing again.
    

    To check device or resource busy, I ran handle command for windows:

    C:\>handle mbgywYdNTdwToa040cg3Azu3oUSUBGsp.bin
    
    Nthandle v4.1 - Handle viewer
    Copyright (C) 1997-2016 Mark Russinovich
    Sysinternals - www.sysinternals.com
    
    bash.exe           pid: 8008   type: File           3D0: C:\Users\Jonathan\.sdkman\tmp\mbgywYdNTdwToa040cg3Azu3oUSUBGsp.bin
    

    And then I ran ps within Cygwin:

    $ ps
          PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
         1948   13268    1948       8008  pty3      197609 19:57:39 /usr/bin/bash
         7532   12708    7532       8256  pty2      197609 02:13:00 /usr/bin/ps
         1044    1164    1044      15392  pty0      197609 19:28:45 /usr/bin/bash
        13268       1   13268      13268  ?         197609 19:57:39 /usr/bin/mintty
        14852       1   14852      14852  ?         197609 19:51:14 /usr/bin/mintty
        12708   14852   12708       4204  pty2      197609 19:51:14 /usr/bin/bash
         1164       1    1164       1164  ?         197609 19:28:45 /usr/bin/mintty
    
    bug 
    opened by jbuhacoff 38
  • Remove hard-coded references to candidates

    Remove hard-coded references to candidates

    It seems wrong to hard-code the candidate names when they are available from the server. It also makes it hard to add new candidates. The scripts pretty much work with a really small change to gvm-use.sh, but the tests also rely on the PATH being set, so there is a change to the tests as well to make them pass.

    opened by dsyer 36
  • Point at a local installation for dev purpose

    Point at a local installation for dev purpose

    As a Groovy developer, I often install development versions of Groovy locally. It's usually the master branch of upcoming Groovy releases, etc.

    It'd be nice if I could tell GVM to use my local installation as well, in addition to all the known release versions. For example:

    gvm install local groovy 2.1.0-SNAPSHOT /dev/groovy/master/target/install
    

    Or something like that. I'm sure you'll find a better command-line to use.

    enhancement 
    opened by glaforge 31
  • GVM doesn't work with Fish shell

    GVM doesn't work with Fish shell

    The previous work-around for using GVM with the Fish shell was to add all the 'current' links to the PATH. This appears to be broken with newer versions of GVM. The 'current' link is only set to the default version of the given tool and doesn't get updated when 'use'-ing a different version.

    opened by ctwise 29
  • Issue installing gvm on fresh cygwin install

    Issue installing gvm on fresh cygwin install

    I have a new Windows 7 laptop. First thing I did was install Cygwin. Then while setting up my dev environment I decided to try Gvm.

    I added the following lines at the end of my .bashrc: export JAVA_HOME=/cygdrive/c/dev/sdks/jdk1.7.0_25/ export PATH=$PATH:$JAVA_HOME/bin

    This being a default Cygwin install, with nothing customized yet, my .bashrc file is sourced by my .bash_profile file when I launch Cygwin.

    I followed the simple gvm install process, by running the curl command. When I open Cygwin, post-install, I get the following problem: -bash: export: HTTP/1.1': not a valid identifier -bash: export:200': not a valid identifier ': not a valid identifier -bash: export: CONTENT-TYPE:': not a valid identifier ': not a valid identifierN -bash: export:CONTENT-LENGTH:': not a valid identifier ': not a valid identifier -bash: export: `CONNECTION:': not a valid identifier ': not a valid identifierE ': not a valid identifier A new version of GVM is available...

    The current version is HTTP/1.1 200 OK Content-Length: 5 Connection: keep-alive

    1.3.3, but you have 1.3.3.

    Would you like to upgrade now? (Y/n)y bash: line 1: HTTP/1.1: No such file or directory bash: line 2: Content-Type:: command not found bash: line 3: Content-Length:: command not found bash: line 4: Connection:: command not found bash: line 5: $'\r': command not found

    Updating gvm... warning [C:\cygwin64\home\eweibust.gvm\tmp\res-1.3.3.zip]: 97 extra bytes at beginning or within zipfile (attempting to process anyway)

    Successfully upgraded GVM.

    Please open a new terminal, or run the following in the existing one:

    source "/home/eweibust/.gvm/bin/gvm-init.sh"
    

    eweibust@RSNPLALT538 ~ $ echo $PATH | tr ':' '\n' /home/eweibust/.gvm/vertx/current/bin /home/eweibust/.gvm/lazybones/current/bin /home/eweibust/.gvm/groovyserv/current/bin /home/eweibust/.gvm/groovy/current/bin /home/eweibust/.gvm/griffon/current/bin /home/eweibust/.gvm/grails/current/bin Content-Typet/.gvm/HTTP/1.1 200 OK Content-Length Connection gradle/current/bin /usr/local/bin /usr/bin /cygdrive/c/Windows/system32 /cygdrive/c/Windows /cygdrive/c/Windows/System32/Wbem /cygdrive/c/Windows/System32/WindowsPowerShell/v1.0 /cygdrive/c/dev/sdks/jdk1.7.0_25//bin

    eweibust@RSNPLALT538 ~ $

    It appears there is a problem with the bash script gvm is running, which is then corrupting my PATH (shown in the echo $PATH above).

    bug 
    opened by erikweibust 29
  • Completion script initialisation problems

    Completion script initialisation problems

    Using sdkman SDKMAN 5.11.2+698 on Ubuntu Linux 20.04 and bash 5.0.17(1) with the necessary code in .bashrc to put it in the path.

    When I start a new terminal, i.e. invoke a new bash, output like the following sometimes appears on the console:

    ommand not found
    36m====: command not found
    
    Command '0music' not found, did you mean:
    
      command 'music' from deb music-bin (1.1.16-1.1build2)
    
    Try: sudo apt install <deb name>
    
    
    Command '0music' not found, did you mean:
    
      command 'music' from deb music-bin (1.1.16-1.1build2)
    
    Try: sudo apt install <deb name>
    
    
    Command '0music' not found, did you mean:
    
      command 'music' from deb music-bin (1.1.16-1.1build2)
    
    Try: sudo apt install <deb name>
    
    ================================================================================: command not found
    

    I did not manage to find out why/when this happens, it appears to be almost random, though it usually happens when opening the first terminal after a restart or after a longer time.

    I have observed this behaviour for several weeks now and I am certain this only happens when the SDKMAN-related code is active in .bashrc, never happens when I comment that out.

    The "command not found" complaints I get appear to come from strings inside the bash prompt definition and from the names of random directories in my home directory. I have no idea at all what could be going on here, but it became so annoying that I usually deactivate sdkman completely.

    So sadly, I cannot provide steps to reproduce because this problem occurs seemingly randomly (but often enough to be very annoying).

    bug 
    opened by johann-petrak 26
  • SDKMAN warns about update while there is none

    SDKMAN warns about update while there is none

    Please tick one:

    • [ ] this is a new Feature Request, a conversation was started in the Gitter CLI Development Room.
    • [x] this is a new Bug Report or Issue, a conversation was started on Twitter.

    Please explain the Issue / Feature Request here:

    SDKMAN warned me that there was an update, while there actually wasn't:

    ATTENTION: A new version of SDKMAN is available...
    
    The current version is 5.7.3+337, but you have 5.7.3+337
    
    Would you like to upgrade now? (Y/n): Y
    No update available at this time.
    

    I don't know how to reproduce the issue, using the sdk update command immediately tells me there are no updates.

    screenshot from 2018-12-12 15-52-08

    See also discussion on twitter: https://twitter.com/mhogerheijde/status/1072868313846312964

    Details about my system:

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.10
    Release:        18.10
    Codename:       cosmic
    $ zsh --version
    zsh 5.5.1 (x86_64-ubuntu-linux-gnu)
    $ xfce4-terminal --version
    xfce4-terminal 0.8.7.4 (Xfce 4.12)
    $ tmux -V
    tmux 2.7
    
    opened by mhogerheijde 25
  • "You already have SDKMAN installed" after deploying dotfiles with sdkman config

    Quoting #1069:

    the current approach is very dotfiles unfriendly


    Hi. My problem is that I am unable to install sdkman easily on a new system with get.sdkman.io, just because recently I've added a single .sdkman/etc/config to my dotfiles.

    And now on a fresh new system I first deploy my dotfiles and then start installing software and tools which I need. The problem I am facing with sdkman is that now it refuses to be installed with curl -s "https://get.sdkman.io" | bash and complains: "You already have SDKMAN installed" just because the directory with .sdkman/etc/config already exists (the installation script has a simple dir existence check: [ -d "$SDKMAN_DIR" ])

    As a unix-based system's user I would expect user's configuration to be stored at $XDG_HOME_CONFIG, so I totally support #941 feature request

    opened by gavvvr 0
  • Feature: How to disable printing to the shell when the used jvm is changed?

    Feature: How to disable printing to the shell when the used jvm is changed?

    Is there an option to disable the output to the shell when the used jvm is changed? like "Using java version xxx in this shell."

    I would like that a lot, especially when the shell just got started.

    enhancement 
    opened by ky0n 0
  • 2/3: Validate & checksum artifacts

    2/3: Validate & checksum artifacts

    This PR makes the install script "archive type"-aware, performing checksums for both zips and tarballs, and unpacks either archive type with the appropriate tool

    opened by hgeraldino 0
  • Question: sdkmanrc - Pin Java to minor or major-version

    Question: sdkmanrc - Pin Java to minor or major-version

    Question

    We have .sdkmanrcs in our project to ensure everyone's using the same java-version. However, we aren't particular to the exact-version. We just need a way to enforce (e.g.) Java 11.

    The problem with setting the exact version is, that it might be outdated as soon as another developer joins the team. The existing team-members already have the java-version installed via sdkman, so sdk env works as expected. The new team-member can't install the now missing Java-version and we are forced to update the .sdkmanrc across all repositories, the new team-member is expected to use.

    This is a chore I would like to avoid in the future.

    Is there a way to use sdkman to achieve what I'm asking for? Is this maybe a non-idiomatic request that should be handled differently?

    System info

    Not relevant (will provide if seemingly relevant though)

    opened by tim-hilt 0
  • Bug: Failed to download native client for Raspbian

    Bug: Failed to download native client for Raspbian

    Bug report

    Installation fails with a 404 - not found message when downloading native binary. I've added a verbose flag to curl, see the output below:

    Looking for a previous installation of SDKMAN...
    Looking for unzip...
    Looking for zip...
    Looking for curl...
    Looking for sed...
    Installing SDKMAN scripts...
    Create distribution directories...
    Getting available candidates...
    Prime the config file...
    Installing script cli archive...
    * Downloading...
    ############################################################################################################################################################################################################## 100.0%
    * Checking archive integrity...
    * Extracting archive...
    * Copying archive contents...
    * Cleaning up...
    
    * Downloading...
    *   Trying 45.55.42.78:443...                                                           #                #                #               #                                                                         
    * Connected to api.sdkman.io (45.55.42.78) port 443 (#0)
    * ALPN, offering h2                                                                            #                #               #               #                                                                   
    * ALPN, offering http/1.1
    * successfully set certificate verify locations:
    *  CAfile: /etc/ssl/certs/ca-certificates.crt
    *  CApath: /etc/ssl/certs
    } [5 bytes data]
    * TLSv1.3 (OUT), TLS handshake, Client hello (1):
    } [512 bytes data]
    * TLSv1.3 (IN), TLS handshake, Server hello (2):                                                      #               #               #               #                                                             
    { [122 bytes data]
    * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
    { [25 bytes data]
    * TLSv1.3 (IN), TLS handshake, Certificate (11):
    { [4578 bytes data]
    * TLSv1.3 (IN), TLS handshake, CERT verify (15):
    { [264 bytes data]
    * TLSv1.3 (IN), TLS handshake, Finished (20):
    { [52 bytes data]
    * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
    } [1 bytes data]
    * TLSv1.3 (OUT), TLS handshake, Finished (20):
    } [52 bytes data]
    * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
    * ALPN, server accepted to use http/1.1
    * Server certificate:
    *  subject: CN=*.sdkman.io
    *  start date: Apr 10 00:00:00 2022 GMT
    *  expire date: Apr 28 23:59:59 2023 GMT
    *  subjectAltName: host "api.sdkman.io" matched cert's "*.sdkman.io"
    *  issuer: C=GB; ST=Greater Manchester; L=Salford; O=Sectigo Limited; CN=Sectigo RSA Domain Validation Secure Server CA
    *  SSL certificate verify ok.
    } [5 bytes data]                                                                                            #                #               #              #                                                       
    > GET /2/broker/download/native/install/0.0.15/linuxarm32hf HTTP/1.1
    > Host: api.sdkman.io
    > User-Agent: curl/7.74.0
    > Accept: */*
    > 
    { [5 bytes data]
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    { [265 bytes data]
    * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
    { [265 bytes data]
    * old SSL session ID is stale, removing
    { [5 bytes data]                                                                                                   #               #               #              #                                                 
    * Mark bundle as not supporting multiuse
    * The requested URL returned error: 404 Not Found
    * Closing connection 0
    } [5 bytes data]
    * TLSv1.3 (OUT), TLS alert, close notify (256):
    } [2 bytes data]
    curl: (22) The requested URL returned error: 404 Not Found
    
    'curl -v --fail --location --progress-bar "$download_url" > "$sdkman_zip_file"': command failed with exit code 22.
    

    To reproduce

    On a Raspberry Pi 2 Model B, running raspbian newest raspbian (see OS version below), try running install script $ curl -s https://get.sdkman.io | bash, notice the 404 error.

    System info

    System: GNU/Linux

    uname -a
    Linux raspberrypi 5.15.61-v7+ #1579 SMP Fri Aug 26 11:10:59 BST 2022 armv7l GNU/Linux
    

    Shell Bash:

    bash --version
    GNU bash, version 5.1.4(1)-release (arm-unknown-linux-gnueabihf)
    Copyright (C) 2020 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
    bug 
    opened by tarczynskitomek 2
Releases(latest)
  • latest(Dec 19, 2022)

  • 5.16.0(Aug 6, 2022)

    Changelog

    • f26c250 Accommodate platform in selfupdate stub.
    • 8adeaf9 Pass platform identifier to selfupdate stable script.
    • ccf6770 Fix typos in CONTRIBUTING.md (#1107)
    • 9f86a55 Bump JReleaser from 1.0.0-M3 to 1.0.0 (#1091)
    • 0906561 #1087 Fix sdkman_auto_env when PROMPT_COMMAND ends with space (#1088)
    • 469f83b Pass platform identifier to selfupdate beta script.
    • c7f88ad Bump actions/setup-java from 2 to 3 (#1085)

    Bumps actions/setup-java from 2 to 3.

    Contributors

    We'd like to thank the following people for their contributions:

    • Marc Wrobel
    • dependabot[bot]
    • Marco Vermeulen
    • Mariusz Wyszomierski
    • Oliver Weiler
    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(88 bytes)
    sdkman-cli-5.16.0.zip(29.08 KB)
  • 5.15.0(Apr 7, 2022)

  • 5.14.3(Apr 1, 2022)

    Changelog

    • 94ccfd0 Do not trigger beta releases on changes to the workflows
    • 92277bf Bump kentaro-m/auto-assign-action from 1.1.2 to 1.2.1
    • d8e3bf8 Bump actions/checkout from 2 to 3
    • b7781e5 Add dependabot.yml (#1078)
    • 31d2765 Replace template tag with version (#1079)

    Contributors

    We'd like to thank the following people for their contributions:

    • Oliver Weiler
    • Marco Vermeulen
    • dependabot[bot]
    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(88 bytes)
    sdkman-cli-5.14.3.zip(29.16 KB)
  • 5.14.2(Mar 25, 2022)

    Changelog

    • 3125e13 Upgrade JReleaser to 1.0.0-M3 (#1076)
    • 3ab1da7 Upgrade JReleaser to 0.10.0.
    • 06fd043 Fix broken tests to do with platform inference.
    • 08e7402 Check zip integrity before checksum.
    • 19eeef8 Code tweak in install source.
    • 87b8176 Fix test
    • 282e11f Update test and init
    • 1e59a34 Consider unsupported platforms as exotic
    • 17d70f0 Run jreleaserFullRelease to create files required by Homebrew (#1071)

    Contributors

    We'd like to thank the following people for their contributions:

    • Marco Vermeulen
    • Johannes Bechberger
    • Oliver Weiler
    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(88 bytes)
    sdkman-cli-5.14.2.zip(29.16 KB)
  • 5.14.1(Mar 14, 2022)

  • 5.14.0(Mar 11, 2022)

  • 5.13.2(Feb 15, 2022)

    Changelog

    • 77fe23a "sdkman_checksum_enable" feature flag
    • f4b21c1 Improve stdout for checksum verification
    • 9f5d5cd Change Linux version for ARMv6
    • b75b211 Add /usr/local/bin to default PATH, so user-installed utils (like md5sum in OSX) are picked up during tests
    • ec1edb8 Update JReleaser configuration.

    Contributors

    We'd like to thank the following people for their contributions:

    • Hector Geraldino
    • Andres Almiray
    • Frank Delporte
    • Marco Vermeulen
    Source code(tar.gz)
    Source code(zip)
    checksums_sha256.txt(88 bytes)
    sdkman-cli-5.13.2.zip(29.05 KB)
  • 5.13.1(Nov 5, 2021)

  • 5.13.0(Oct 18, 2021)

    This is a big release with many non-functional changes to set the scene for future enhancement.

    • SDKMAN now itself distributed as an SDK archive
    • Add capability for native binary support
    • Capability for using checksums on downloaded archives (@hgeraldino)
    • Bug fixes and improvements to bash-completion POSIX compatibility (@helpermethod)
    • First steps toward LINUX_ARM32SF and LINUX_ARM32HF for Raspberry Pi (@FDelporte)
    • Improvements to build process for packaging SDK archive
    • Improved stable/beta channel handling
    Source code(tar.gz)
    Source code(zip)
    sdkman-cli-5.13.0.zip(29.83 KB)
  • 5.12.4(Sep 5, 2021)

    This release includes the following:

    • Issue #964: With ZSH_DISABLE_COMPFIX="true", compinit -u -C is called. The -C flag will cause compinit to skip all security checks and the -u flag will use all files found for completion. This is considered best practice in oh-my-zsh.
    • Some pre-emptive work to enable checksum cabability.
    Source code(tar.gz)
    Source code(zip)
    sdkman-cli-5.12.4.zip(28.08 KB)
  • 5.12.3(Sep 1, 2021)

  • 5.12.2(Jul 20, 2021)

  • 5.12.0(Jul 17, 2021)

    This release brings changes to the configuration:

    • add a new sdkman_selfupdate_enable
    • remove sdkman_auto_selfupdate config

    The default setting for sdkman_selfupdate_enable will be set to true by default. It also honours the sdkman_auto_answer flag if set to true.

    Run sdk config to make changes to the configuration.

    Source code(tar.gz)
    Source code(zip)
    sdkman-cli-5.12.0.zip(27.93 KB)
  • 5.11.7(Jul 12, 2021)

  • 5.11.6(Jun 21, 2021)

  • 5.11.5(May 24, 2021)

    • Remove the completion command
    • Source appropriate bash/zsh completion script
    • Completion is driven by sdkman_auto_complete config
    • Backward compatibility for completion command
    Source code(tar.gz)
    Source code(zip)
  • 5.11.4(May 18, 2021)

  • 5.11.3(May 15, 2021)

  • 5.11.2(Apr 29, 2021)

  • 5.11.1(Apr 12, 2021)

    Feature enhancements:

    • Adds ZSH completion
    • Improves bash completion

    Test stability:

    • Fixes broken tests on OSX
    • Make tests more deterministic

    This release had a defect, and we rolled back to 5.11.0 in the interim.

    Source code(tar.gz)
    Source code(zip)
  • 5.11.0(Feb 8, 2021)

    This release has the following new features and improvements:

    • #860 Add a new completion command :tada:
    • #859 Improved UX by providing helpful hints when version not available
    • #863 Fixes an issue with regard to the env command
    Source code(tar.gz)
    Source code(zip)
  • 5.10.0(Jan 24, 2021)

    Adds a new config sdkman_rosetta2_compatbile to .sdkman/etc/config for switching on/off Rosetta 2 compatibility mode:

    • is exclusive, either x86_64 or arm64
    • chooses x86_64 + Rosetta 2 by default
    • can be switched to false to use native JDKs
    • Only Azul Zulu arm64 JDKs available
    • interim solution until more vendors release native arm64 JDKs
    Source code(tar.gz)
    Source code(zip)
  • 5.9.2(Jan 12, 2021)

    This release contains several new features and some other improvements and fixes:

    • platform inference for ARM64 Mac architecture
    • adds sdk env install subcommand
    • display helpful tip when version not found for platform
    • only sources .sh files on initialization
    Source code(tar.gz)
    Source code(zip)
  • 5.9.1(Oct 10, 2020)

    This release has two new improvements:

    • omitting the qualifier in the flush command will flush all directories (not version or broadcast)
    • sensible return codes are returned for scripting situation, with appropriate test coverage
    Source code(tar.gz)
    Source code(zip)
  • 5.9.0(Aug 5, 2020)

  • 5.8.5(Jul 17, 2020)

  • 5.8.4(Jul 16, 2020)

    • Replace $(cat file) invocations with $(< file) for better performance.
    • Use relative path for current symlink to version directory.
    • Improve handling of secure curl downloads.
    • Remove unused legacy bash workarounds
    Source code(tar.gz)
    Source code(zip)
Owner
SDKMAN!
The Software Development Kit Manager
SDKMAN!
TransitScheduler - a command line tool that can read .json data formulated for tracking transit patterns to a multithreaded concurrent simulation of passengers boarding and unboarding trains that constantly move to the next station on the line. The trick here, is that two trains cannot occupy the same station at any time.

TransitScheduler - a command line tool that can read .json data formulated for tracking transit patterns to a multithreaded concurrent simulation of passengers boarding and unboarding trains that constantly move to the next station on the line. The trick here, is that two trains cannot occupy the same station at any time.

Emmet Hayes 1 Dec 2, 2022
Command Line Interface to interact with Carbyne Stack Virtual Clouds

Carbyne Stack Command Line Interface This is a CLI tool to communicate with the Carbyne Stack services. DISCLAIMER: The Carbyne Stack CLI is alpha sof

Carbyne Stack 5 Oct 15, 2022
Java annotation-based framework for parsing Git like command line structures

Airline Airline is a Java annotation-based framework for parsing Git like command line structures. Latest release is 0.8, available from Maven Central

null 847 Nov 26, 2022
A command line parser generator

jbock is a command line parser that works similar to airline and picocli. While most of these other tools scan for annotations at runtime, jbock is an

H90 73 Dec 13, 2022
Command line parsing framework for Java

JCommander This is an annotation based parameter parsing framework for Java 8. Here is a quick example: public class JCommanderTest { @Parameter

Cedric Beust 1.8k Dec 29, 2022
Java monitoring for the command-line, profiler included

jvmtop is a lightweight console application to monitor all accessible, running jvms on a machine. In a top-like manner, it displays JVM internal metri

null 1.2k Jan 6, 2023
Command-line API for Atlassian JIRA using the Tomitribe CREST library

Atlassian JIRA Command-Line (CLI) Jamira is a command-line API for Atlassian JIRA using the Tomitribe CREST library. Installation Jamira can be downlo

Tomitribe 12 Sep 10, 2022
A command line client for Kafka Connect

kcctl -- A CLI for Apache Kafka Connect This project is a command-line client for Kafka Connect. Relying on the idioms and semantics of kubectl, it al

Gunnar Morling 274 Dec 19, 2022
A command line client for Kafka Connect

?? kcctl – Your Cuddly CLI for Apache Kafka Connect This project is a command-line client for Kafka Connect. Relying on the idioms and semantics of ku

kcctl 274 Dec 19, 2022
Command-line and graphical implementations of 2048 game and solvers.

2048 This is a simple 2048 game implemented both as a command-line interface and a graphical Java applet, with a couple of basic auto-solving algorith

Radon Rosborough 4 Sep 25, 2022
A maven plugin to include features from jmeter-plugins.org for JMeterPluginsCMD Command Line Tool to create graphs, export csv files from jmeter result files and Filter Result tool.

jmeter-graph-tool-maven-plugin A maven plugin to create graphs using the JMeter Plugins CMDRunner from JMeter result files (*.jtl or *.csv) or using F

Vincent DABURON 6 Nov 3, 2022
DeV Tools - Swiss Army Knife of command line utilities

dvt aims to bundle all small utilities used by developers (typically a mix of cli and online tools) into one binary that you can simply use in the console. No need for complex pipe-ing, copy-pasting on different sites or keep installing cli utilities for every need.

Madalin Ilie 13 Sep 15, 2022
A command-line tool to securely encrypt passwords and notes using AES encryption.

Treasury A command-line tool to securely encrypt passwords and notes using AES encryption. Installation Usage Technology Built solely in Java Picocli

Kai 4 Oct 17, 2022
Reflectionless command line parser

jbock is a command line parser, which uses the same annotation names as JCommander and picocli. However it does not use reflection. It is an annotatio

null 74 Jan 4, 2023
This App is a command line application, based on Cryptography.

This App is a command line application, based on Cryptography. where a user input a text and its encrypted and can be decrypted as well.

Mohamed Ibrahim 1 Jan 28, 2022
log4j2-scan is a single binary command-line tool for CVE-2021-44228 vulnerability scanning and mitigation patch

log4j2-scan is a single binary command-line tool for CVE-2021-44228 vulnerability scanning and mitigation patch. It also supports nested JAR file scan

Logpresso GitHub 839 Dec 29, 2022
A word game inspired by the original Wordle to run in the command line.

Wordle This is a word game inspired by the original Wordle to run in the command line. It can be played in english or in spanish. How to run it Open a

null 37 Dec 17, 2022