Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 sdkman 安装并维护多个版本的 JDK #120

Open
felix-cao opened this issue Nov 27, 2018 · 3 comments
Open

使用 sdkman 安装并维护多个版本的 JDK #120

felix-cao opened this issue Nov 27, 2018 · 3 comments

Comments

@felix-cao
Copy link
Owner

felix-cao commented Nov 27, 2018

一、sdkman 简介

软件开发工具管理包(Software Development Kit Manager,简称 sdkman),这个工具的主要用途是用来解决在类 unix 操作系统(如 mac, Linux 等)中多种版本开发工具的切换, 安装和卸载的工作.对于windows 系统的用户可以使用 Powershell CLI 来体验.

例如: 项目 A 使用 Jdk7 中某些特性在后续版本中被移除(尽管这是不好的设计),项目 B 使用 Jdk8, 我们在切换开发这两个项目的时候,需要不断的切换系统中的 JAVA_PATH, 这样很不方便,如果存在很多个类似的版本依赖问题,就会给工作带来很多不必要的麻烦.
  
sdkman 这个工具就可以很好的解决这类问题,它的工作原理是自己维护多个版本,当用户需要指定版本时,sdkman 会查询自己所管理的多版本软件中对应的版本号,并将它所在的路径设置到系统 PATH.

二、安装 sdkman

2.1、MAC/ Linux 下安装很简单

$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version
sdkman 5.0.0+51

2.2、windows 下安装

1)、先去 cygwin 下载 cygwin, 注意安装的时候,选择安装 curl、unzip、zip( 在 Select packages to install)如下图,
图1、图2
2)、设置终端代理
按照 《Mac 命令行翻墙》#81 一文中的步骤来设置翻墙

3、执行命令

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

成功后加入环境变量
vi ~/.bash_profile

export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"

export JAVA_HOME="$SDKMAN_DIR/candidates/java/current"

这里可以参考 在 Git bash 环境下使用 vue-cli(vue 3.0) 工具 设置一下全局变量

三、使用

查看当前可下载的 java

$ sdk list java

安装 jdk1.8

$ sdk install java 8.0.275.open-adpt
$ sdk install java 8.282.08.1-amzn

默认安装位置在~/.sdkman/candidates/java/目录下

使用 default 切换默认运行版本

$ sdk default java 8.0.275.open-adpt

卸载安装包

sdk uninstall java 8.0.275.open-adpt
# or
sdk rm java 8.0.275.open-adpt

四、其他安装

$ sdk install maven
$ sdk install gradle 

五、错误

当我们使用时,会提示错误

ERROR: JAVA_HOME is set to an invalid directory: /home/sunwin/.sdkman/candidates /java/current

export JAVA_HOME=C:/\cygwin64/\home/\sunwin/.sdkman/\candidates/\java/\8.0.191

Rerfence

@felix-cao
Copy link
Owner Author

felix-cao commented Dec 8, 2020

提示错误:

Restart after installing zip.

SDKMan需要zip,默认情况下Windows Git Bash中不包含zip。要解决这个问题,请转到https://sourceforge.net/projects/gnuwin32/files/
并在列表中找到zip。下载zip-3.0-bin.zip并在bin文件夹中解压缩zip.exe。复制到c:\程序文件\Git\usr\bin。再次运行SDKMan install脚本。

@felix-cao felix-cao changed the title sdkman 搭建 Java 开发环境 使用 sdkman 安装并维护多个版本的 JDK Dec 8, 2020
@felix-cao
Copy link
Owner Author

felix-cao commented Dec 20, 2020

@felix-cao
Copy link
Owner Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant