java多版本管理
背景
- java版本的升级也比较频繁, 每年一个版本或更多
- 虽然java环境变量的配置无技术性可言, 但对于频繁切换也是比较枯燥的
java版本管理工具
- sdkman: https://sdkman.io/
- jenv
- Jabba
sdkman的安装--mac
安装
curl -s "https://get.sdkman.io" | bash
立即生效
source "$HOME/.sdkman/bin/sdkman-init.sh"
测试
sdk version
结果
$ sdk version
==== BROADCAST =================================================================
* 2020-09-02: jbang 0.43.0 @jbangdev https://git.io/JUqfJ
* 2020-09-02: jbang 0.42.1 @jbangdev https://git.io/JUqfJ
* 2020-08-25: Gradle 6.6.1 released on SDKMAN! #gradle
================================================================================
SDKMAN 5.9.0+555
sdkman的使用--mac
查看帮助
$ sdk help
Usage: sdk <command> [candidate] [version]
sdk offline <enable|disable>
commands:
install or i <candidate> [version] [local-path]
uninstall or rm <candidate> <version>
list or ls [candidate]
use or u <candidate> <version>
default or d <candidate> [version]
home or h <candidate> <version>
env or e [init]
current or c [candidate]
upgrade or ug [candidate]
version or v
broadcast or b
help
offline [enable|disable]
selfupdate [force]
update
flush <broadcast|archives|temp>
candidate : the SDK to install: groovy, scala, grails, gradle, kotlin, etc.
use list command for comprehensive list of candidates
eg: $ sdk list
version : where optional, defaults to latest stable if not provided
eg: $ sdk install groovy
local-path : optional path to an existing local installation
eg: $ sdk install groovy 2.4.13-local /opt/groovy-2.4.13
查看正在使用的java版本
$ sdk current java
Not using any version of java
查看所有的java版本
$ sdk list java
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
AdoptOpenJDK | | 14.0.2.j9 | adpt | | 14.0.2.j9-adpt
| | 14.0.2.hs | adpt | | 14.0.2.hs-adpt
| | 13.0.2.j9 | adpt | | 13.0.2.j9-adpt
| | 13.0.2.hs | adpt | | 13.0.2.hs-adpt
| | 12.0.2.j9 | adpt | | 12.0.2.j9-adpt
| | 12.0.2.hs | adpt | | 12.0.2.hs-adpt
| | 11.0.8.j9 | adpt | | 11.0.8.j9-adpt
| | 11.0.8.hs | adpt | | 11.0.8.hs-adpt
| | 8.0.265.j9 | adpt | | 8.0.265.j9-adpt
| | 8.0.265.hs | adpt | | 8.0.265.hs-adpt
Amazon | | 11.0.8 | amzn | | 11.0.8-amzn
| | 8.0.265 | amzn | | 8.0.265-amzn
Azul Zulu | | 14.0.2 | zulu | | 14.0.2-zulu
| | 13.0.4 | zulu | | 13.0.4-zulu
| | 13.0.4.fx | zulu | | 13.0.4.fx-zulu
| | 12.0.2 | zulu | | 12.0.2-zulu
| | 11.0.8 | zulu | | 11.0.8-zulu
| | 11.0.8.fx | zulu | | 11.0.8.fx-zulu
| | 10.0.2 | zulu | | 10.0.2-zulu
| | 9.0.7 | zulu | | 9.0.7-zulu
| | 8.0.265 | zulu | | 8.0.265-zulu
| | 8.0.265.fx | zulu | | 8.0.265.fx-zulu
| | 8.0.232.fx | zulu | | 8.0.232.fx-zulu
| | 8.0.202 | zulu | | 8.0.202-zulu
| | 7.0.262 | zulu | | 7.0.262-zulu
| | 7.0.181 | zulu | | 7.0.181-zulu
BellSoft | | 14.0.2.fx | librca | | 14.0.2.fx-librca
| | 14.0.2 | librca | | 14.0.2-librca
| | 13.0.2.fx | librca | | 13.0.2.fx-librca
| | 13.0.2 | librca | | 13.0.2-librca
| | 12.0.2 | librca | | 12.0.2-librca
| | 11.0.8.fx | librca | | 11.0.8.fx-librca
| | 11.0.8 | librca | | 11.0.8-librca
| | 8.0.265.fx | librca | | 8.0.265.fx-librca
| | 8.0.265 | librca | | 8.0.265-librca
GraalVM | | 20.2.0.r11 | grl | | 20.2.0.r11-grl
| | 20.2.0.r8 | grl | | 20.2.0.r8-grl
| | 20.1.0.r11 | grl | | 20.1.0.r11-grl
| | 20.1.0.r8 | grl | | 20.1.0.r8-grl
| | 20.0.0.r11 | grl | | 20.0.0.r11-grl
| | 20.0.0.r8 | grl | | 20.0.0.r8-grl
| | 19.3.1.r11 | grl | | 19.3.1.r11-grl
| | 19.3.1.r8 | grl | | 19.3.1.r8-grl
Java.net | | 16.ea.13 | open | | 16.ea.13-open
| | 15.ea.36 | open | | 15.ea.36-open
| | 14.0.2 | open | | 14.0.2-open
| | 13.0.2 | open | | 13.0.2-open
| | 12.0.2 | open | | 12.0.2-open
| | 11.0.2 | open | | 11.0.2-open
| | 10.0.2 | open | | 10.0.2-open
| | 9.0.4 | open | | 9.0.4-open
SAP | | 14.0.2 | sapmchn | | 14.0.2-sapmchn
| | 13.0.2 | sapmchn | | 13.0.2-sapmchn
| | 12.0.2 | sapmchn | | 12.0.2-sapmchn
| | 11.0.8 | sapmchn | | 11.0.8-sapmchn
================================================================================
Use the Identifier for installation:
$ sdk install java 11.0.3.hs-adpt
================================================================================
安装指定的java版本
安装jdk1.8, 版本号填写的是上图中的Identifier列
$ sdk install java 8.0.265.hs-adpt
Downloading: java 8.0.265.hs-adpt
In progress...
################################################################################################################################## 100.0%
################################################################################################################################## 100.0%
Repackaging Java 8.0.265.hs-adpt...
Done repackaging...
Cleaning up residual files...
Installing: java 8.0.265.hs-adpt
Done installing!
Setting java 8.0.265.hs-adpt as default.
同样的方式安装java 14.0.2.j9-adpt
再次查看有的java版本
$ sdk list java
================================================================================
Available Java Versions
================================================================================
Vendor | Use | Version | Dist | Status | Identifier
--------------------------------------------------------------------------------
AdoptOpenJDK | | 14.0.2.j9 | adpt | installed | 14.0.2.j9-adpt
| | 14.0.2.hs | adpt | | 14.0.2.hs-adpt
| | 13.0.2.j9 | adpt | | 13.0.2.j9-adpt
| | 13.0.2.hs | adpt | | 13.0.2.hs-adpt
| | 12.0.2.j9 | adpt | | 12.0.2.j9-adpt
| | 12.0.2.hs | adpt | | 12.0.2.hs-adpt
| | 11.0.8.j9 | adpt | | 11.0.8.j9-adpt
| | 11.0.8.hs | adpt | | 11.0.8.hs-adpt
| | 8.0.265.j9 | adpt | | 8.0.265.j9-adpt
| >>> | 8.0.265.hs | adpt | installed | 8.0.265.hs-adpt
- 已经安装的会显示
installed - 正在使用的会显示
>>>
切换java的版本
$ sdk use java 8.0.265.hs-adpt
Using java version 8.0.265.hs-adpt in this shell.
查看java的版本
$ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)
- 切换版本仅在当前shell有效, 新打开的终端会使用默认的java版本
- 可以通过设置默认版本, 使新终端也是相同的java版本
设置默认版本
$ sdk default java 8.0.265.hs-adpt
Default java version set to 8.0.265.hs-adpt
TODO 另外两种java版本管理调研
java多版本管理的更多相关文章
- Java-JRE:JRE百科
ylbtech-Java-JRE:JRE百科 JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品.运行JAVA程序所必须的环境的集合,包含JVM标准实现及 ...
- Gradle实战(01)--介绍与安装
前言 本章你将学习到 Gradle的介绍 Gradle的安装 Gradle的hello world 1 Gradle的介绍 Gradle是专注于灵活性和性能的开源构建自动化工具 Gradle构建脚本是 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- Java开发学习(三十一)----Maven属性与版本管理
一.属性 1.1 问题分析 如下图所示 你会发现,如果现在想更新Spring的版本,你会发现依然需要更新多个jar包的版本,这样的话还是有可能出现漏改导致程序出问题,而且改起来也是比较麻烦. 问题清楚 ...
- Java Maven项目之Nexus私服搭建和版本管理应用
转载自:https://cloud.tencent.com/developer/article/1010603 1.Nexus介绍 Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓 ...
- linux下java版本管理工具jenv使用介绍
不同的项目使用的java版本不同,每次切换时都需要手动去修改java的环境变量,麻烦至极. jenv可以管理java版本,轻松实现管理多个java的问题. 一.下载jenv $ git clone h ...
- Java豆瓣电影爬虫——小爬虫成长记(附源码)
以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候, ...
- Java新人学习(li)
一.项目中搭配使用SVN和Git 安装SVN:安装熟悉Git:安装maven,修改setting.xml文件:安装eclipse,配置jdk.maven路径: 建立自己的Git仓库,熟悉常用的Git命 ...
- Java开发面试总结
Java开发面试总结.. ----------------------- java 基础知识点这一块: 1.面向对象的三大特征.(继承,封装,多态) 1.1 在什么样的场合下面会使用到继承 1.2 什 ...
随机推荐
- [转]解决The requested resource is not available的方法
此博文为转载博文,首先感谢原作者 HTTP Status 404(The requested resource is not available)异常主要是路径错误或拼写错误造成的,请按以下步骤逐一排 ...
- C#开发笔记之03-为什么选择IsNotXXX方法而不是IsXXX方法?
C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/959 访问. 为什么有时候要选择IsNotXXX方法而 ...
- 【译】gRPC-Web for .NET now available
.NET 的 gRPC-Web 现在正式发布了.我们在一月份发布了实验版,从那时起,我们就根据早期的用户反馈进行着改进. 有了这个版本,gRPC-Web 就变成了 grpc-dotnet 项目的一个完 ...
- Windows下的Minio启动命令
1.首先安装Minio到你的 Windows系统的盘符中,例如D盘 2. 打开dos命令行,进入存放minio.exe的文件夹下,输入 minio.exe server /data 命令,意味着启动 ...
- 收集整理element-ui 表格组件的常用操作方法
一.简单的表格行内编辑效果 原理是通过Css控制绑定的输入控件与显示值,在选中行样式下对控件进行隐藏或显示. 1.注意下样式的设置 2.change事件 @change="handleEdi ...
- unity探索者之支付宝支付,非第三方插件
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8405044.html 支付宝的sdk接入方式和微信支付比较类似,大部分的工作也基本 ...
- centos7 编译安装 redis-6.0.5
安装redis sudo yum install redis centos自带的redis才3.2 太旧了所以使用源码编译 需要先安装gcc新版才能编译 centos7 默认的 gcc 版本为:4.8 ...
- fdisk时WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
现象:划分磁盘有警告, fdisk可以看到 lsblk却没有 partprobe刷新分区还是不行 放大招 #reboot #这个是最好的方法(重启后新的分区表不一定生效) 或 # partx -a ...
- Ncdu强大的磁盘查看命令
简介 项目地址: https://dev.yorhel.nl/ncdu Ncdu (NCurses Disk Usage) 是一个基于 Ncurses 库的 du 命令的界面.它通过大家熟知的 du ...
- Charles 断点修改Response
前言: 我们可以通过map功能进行重定向,但如果同一个域名进行的是不同请求与返回.此时map在这里就不适用了. 我们可以通关对某一请求进行断点,在进行修改请求或者返回.这样就可以满足我们的需求了. 一 ...