上海网站建设公司四叶互联,教育网络平台建设,泉州专业网站制作,京东网站设计代码在linux上用SDKMan对Java进行多版本管理
有一个工具叫SDKMan#xff0c;它允许我们这样做。官方网站这样描述: TIP: SDKMan 是一个工具#xff0c;用于在大多数基于Unix的系统上管理多个软件开发工具包的并行版本。它提供了一个方便的命令行接口(CLI)和API#xff0c…在linux上用SDKMan对Java进行多版本管理
有一个工具叫SDKMan它允许我们这样做。官方网站这样描述: TIP: SDKMan 是一个工具用于在大多数基于Unix的系统上管理多个软件开发工具包的并行版本。它提供了一个方便的命令行接口(CLI)和API用于安装、切换、删除和列出候选项。” 使用SDKMan的一些要点如下:
SDKMan是使用bash编写的。它要求curl和zip/unzip已经安装在您的系统中。SDKMan可以运行在任何基于unix的平台上例如Mac OSX、Linux、Cygwin、Solaris和FreeBSD。SDKMan可以为JVM安装大约29个软件开发工具包如Java、Groovy、Scala、Kotlin、Ceylon、Ant、Gradle、Grails、Maven、SBT、Spark、Spring Boot和Vert.x。我们不需要担心设置’ HOME ‘和’ PATH 环境变量因为SDKMan会自动处理它。
所有用户使用同一个SDKMan
修改 /etc/profile 文件 最后面添加:
#wjw_add for global SDKMan
export SDKMAN_DIR/usr/local/sdkman
[[ -s $SDKMAN_DIR/bin/sdkman-init.sh ]] source $SDKMAN_DIR/bin/sdkman-init.sh执行: source /etc/profile来生效!
下载sdkman:
curl -s https://get.sdkman.io | bash激活sdkman
source $SDKMAN_DIR/bin/sdkman-init.sh使用SDKMan安装Java
SDKMan支持为JVM安装29个软件开发工具包例如Java、Groovy、Scala、Kotlin、Ceylon、Ant、Gradle、Grails、Maven、Gradle、SBT、Spark和Spring Boot。我们可以使用sdk list命令获得完整的列表。
命令sdk list java将给我们一个java版本列表我们可以使用SDKMan安装如下所示:
$ sdk list javaAvailable Java Versions
13.ea.02-open 1.0.0-rc-10-grl 12.ea.26-open 1.0.0-rc-9-grl 11.0.2-zulu 1.0.0-rc-8-grl 11.0.2-open 11.0.1-zulufx 10.0.2-zulu 10.0.2-open 9.0.7-zulu 9.0.4-open 8.0.202-amzn 8.0.201-zulu 8.0.201-oracle 8.0.192-zulufx 7.0.181-zulu 1.0.0-rc-11-grl - local version
* - installed- currently in use现在假设我们想安装OpenJDK版本的Java v9。然后我们将在终端中执行下面的命令该命令还将更新 PATH 和JAVA_HOME 变量:
$ sdk install java 9.0.4-open该命令将花费一些时间来执行因为它将下载JDK到我们机器上该命令将输出如下内容:
Downloading: java 9.0.4-open
In progress...
######################################################################## 100.0%Repackaging Java 9.0.4-open...Done repackaging...
Cleaning up residual files...Installing: java 9.0.4-open
Done installing!Setting java 9.0.4-open as default.现在如果我们检查Java版本和JAVA_HOME可以看到Java已经更新到9.0.4
$ java -version
openjdk version 9.0.4
OpenJDK Runtime Environment (build 9.0.411)
OpenJDK 64-Bit Server VM (build 9.0.411, mixed mode)$ echo $JAVA_HOME
/usr/local/sdkman/candidates/java/current我们可以按照相同的过程来安装上面列表中看到的任何版本。让我们假设要安装Java 11版本。然后我们可以执行命令:
$ sdk install java 11.0.2-open
Downloading: java 11.0.2-open
In progress...
######################################################################## 100.0%Repackaging Java 11.0.2-open...Done repackaging...
Cleaning up residual files...Installing: java 11.0.2-open
Done installing!Do you want java 11.0.2-open to be set as default? (Y/n): YSetting java 11.0.2-open as default.现在如果我们再次检查我们的Java版本和JAVA_HOME我们可以看到Java已经更新到11.0.2:
$ java -version
openjdk version 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.29)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.29, mixed mode)$ echo $JAVA_HOME
/usr/local/sdkman/candidates/java/currentWARNING: 注意:有时您需要关闭并重新打开终端才能看到更改。 将SDKMan指向已安装的现有Java版本
首先我们需要找出您的机器上安装了Java的位置。在我的机器上它安装在文件夹 jdk1.8.0_172.jdk它位于文件夹/usr/Java/下。让我们通过**java-folder**来引用这个文件夹。
我们要做的第二件事是在已安装的**java-folder**和SDKMan之间建立一个符号链接。我们可以通过运行以下命令来实现:
# Oracle JDK
ln -s /usr/local/java-folder $SDKMAN_DIR/candidates/java/java-folder
ln -s /usr/local/java-folder/bin $SDKMAN_DIR/candidates/java/java-folder/bin# Open JDK
ln -s /usr/lib/jvm/java-folder $SDKMAN_DIR/candidates/java/java-folder
ln -s /usr/lib/jvm/java-folder/bin $SDKMAN_DIR/candidates/java/java-folder/bin现在如果我们再次执行sdk list java命令我们将得到: Available Java Versionsjdk1.8.0_172.jd 8.0.201-zulu 13.ea.02-open 8.0.201-oracle 12.ea.26-open 8.0.192-zulufx 11.0.2-zulu 7.0.181-zulu * 11.0.2-open 1.0.0-rc-12-grl 11.0.2.j9-adpt 1.0.0-rc-11-grl 11.0.2.hs-adpt 1.0.0-rc-10-grl 11.0.1-zulufx 1.0.0-rc-9-grl 10.0.2-zulu 1.0.0-rc-8-grl 10.0.2-open 9.0.7-zulu * 9.0.4-open 8.0.202-amzn 8.0.202.j9-adpt 8.0.202.hs-adpt - local version
* - installed- currently in use我们可以清楚地看到我们的机器上已经安装了3个JDK并且JDK 11.0.2-open目前正在使用。但是如果我们想在它们之间切换或者安装一个新的我们可以通过使用**sdk use java version_which_you_want_to_use**就能非常容易地做到这一点如下所示:
使用Java 9
$ sdk use java 9.0.4-open
Using java version 9.0.4-open in this shell.$ java -version
openjdk version 9.0.4
OpenJDK Runtime Environment (build 9.0.411)
OpenJDK 64-Bit Server VM (build 9.0.411, mixed mode)使用Java 11
$ sdk use java 11.0.2-open
Using java version 11.0.2-open in this shell.$ java -version
openjdk version 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.29)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.29, mixed mode)TIP: 使用 sdk use 命令只能使您在执行 sdk use 命令的终端shell中使用指定版本的JDK。如果您关闭终端并再次打开它您将使用先前安装的版本。 但是如果您想为所有终端和应用程序激活一个版本的JDK您可以使用命令**sdk default java your_version*
$ sdk default java 11.0.2-open
Default java version set to 11.0.2-open$ java -version
openjdk version 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.29)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.29, mixed mode)或者您可以卸载该版本并重新安装它如下所示这将把该版本设置为当前JDK。
卸载一个JDK版本
如果你想卸载任何JDK版本例如11.0.2-open你可以这样做:
$ sdk uninstall java 11.0.2-open而且如果您想再次安装卸载后的版本您可以重新安装它而且这一次SDKMan不会下载它因为它已经在您的机器上安装了它(如果您不手动删除它)。
$ sdk install java 11.0.2-openFound a previously downloaded java 11.0.2-open archive. Not downloading it again...Installing: java 11.0.2-open
Done installing!Do you want java 11.0.2-open to be set as default? (Y/n): ySetting java 11.0.2-open as default.删除SDKMan
先删除
rm -r -f ~/.sdkman/最后一步删除 .zshrc , .bash_profile , profile 文件中的初始化代码段 文章转载自: http://www.morning.nbmyg.cn.gov.cn.nbmyg.cn http://www.morning.ypcd.cn.gov.cn.ypcd.cn http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn http://www.morning.zbnkt.cn.gov.cn.zbnkt.cn http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn http://www.morning.pflry.cn.gov.cn.pflry.cn http://www.morning.ztmkg.cn.gov.cn.ztmkg.cn http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.xpzkr.cn.gov.cn.xpzkr.cn http://www.morning.lwdzt.cn.gov.cn.lwdzt.cn http://www.morning.beijingzy.com.cn.gov.cn.beijingzy.com.cn http://www.morning.gyzfp.cn.gov.cn.gyzfp.cn http://www.morning.ddtdy.cn.gov.cn.ddtdy.cn http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn http://www.morning.tkryt.cn.gov.cn.tkryt.cn http://www.morning.qllcm.cn.gov.cn.qllcm.cn http://www.morning.zsrjn.cn.gov.cn.zsrjn.cn http://www.morning.pngph.cn.gov.cn.pngph.cn http://www.morning.ndyrb.com.gov.cn.ndyrb.com http://www.morning.kqylg.cn.gov.cn.kqylg.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.lwyqd.cn.gov.cn.lwyqd.cn http://www.morning.ypjjh.cn.gov.cn.ypjjh.cn http://www.morning.qrwdg.cn.gov.cn.qrwdg.cn http://www.morning.dshxj.cn.gov.cn.dshxj.cn http://www.morning.qkxnw.cn.gov.cn.qkxnw.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.wylpy.cn.gov.cn.wylpy.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.ghxkm.cn.gov.cn.ghxkm.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.mxxsq.cn.gov.cn.mxxsq.cn http://www.morning.dqgbx.cn.gov.cn.dqgbx.cn http://www.morning.jfbrt.cn.gov.cn.jfbrt.cn http://www.morning.fnhxp.cn.gov.cn.fnhxp.cn http://www.morning.knnhd.cn.gov.cn.knnhd.cn http://www.morning.qxnns.cn.gov.cn.qxnns.cn http://www.morning.znnsk.cn.gov.cn.znnsk.cn http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn http://www.morning.qhkdt.cn.gov.cn.qhkdt.cn http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn http://www.morning.wjjxr.cn.gov.cn.wjjxr.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn http://www.morning.mqzcn.cn.gov.cn.mqzcn.cn http://www.morning.kjjbz.cn.gov.cn.kjjbz.cn http://www.morning.fgsct.cn.gov.cn.fgsct.cn http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.pkdng.cn.gov.cn.pkdng.cn http://www.morning.smkxm.cn.gov.cn.smkxm.cn http://www.morning.wlqbr.cn.gov.cn.wlqbr.cn http://www.morning.bauul.com.gov.cn.bauul.com http://www.morning.crfyr.cn.gov.cn.crfyr.cn http://www.morning.lzttq.cn.gov.cn.lzttq.cn http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com http://www.morning.hkng.cn.gov.cn.hkng.cn http://www.morning.bqdpy.cn.gov.cn.bqdpy.cn http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.atoinfo.com.gov.cn.atoinfo.com http://www.morning.wjjxr.cn.gov.cn.wjjxr.cn http://www.morning.ykwgl.cn.gov.cn.ykwgl.cn http://www.morning.glwyn.cn.gov.cn.glwyn.cn http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn http://www.morning.sjsks.cn.gov.cn.sjsks.cn http://www.morning.kdldx.cn.gov.cn.kdldx.cn http://www.morning.bbgn.cn.gov.cn.bbgn.cn http://www.morning.grryh.cn.gov.cn.grryh.cn http://www.morning.gfhng.cn.gov.cn.gfhng.cn http://www.morning.lnrhk.cn.gov.cn.lnrhk.cn http://www.morning.pypqf.cn.gov.cn.pypqf.cn http://www.morning.rmppf.cn.gov.cn.rmppf.cn http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn http://www.morning.fwnyz.cn.gov.cn.fwnyz.cn