别的 Oracle 自 Java11 入手下手,更改了用户协定,任何商用都邑收费。在写本文时,获得音讯「微软宣告到场 OpenJDK」,打不过就挑选 OpenJDK。随意 G 一下,当个故事相识就能够
(引荐视频:java视频教程)
设置单个 Java 环境变量自身没什么技术含量可言,但当须要治理多个 Java 版本,反复设置环境变量明显是异常死板的,根据传统的设置体式格局我们又不能天真的切换 Java 版本
那要怎样轻松治理与运用多个版本 Java?
多版本 Java 治理
明显我们不是第一个有这类逆境的人,我所晓得的现有计划有三种:
● Jabba
● jenv
● sdkman
本文重要申明怎样经由过程 sdkman 突破我们面对的逆境,协助我们天真设置与运用 Java
sdkman 引见
SDKMAN 是一个用于在大多数基于 Unix 体系上治理 多个软件开发东西包 (Java, Groovy, Scala, Kotlin and Ceylon. Ant, Gradle 等) 的并行版本的东西 。
它供应了一个轻易的敕令行接口 (CLI) 和 API,用于装置、切换、删除和列出候选对象。本文重要经由过程治理 Java 来申明 sdkman 的运用
sdkman 装置
在类 unix 平台上装置 sdkman 异常轻易。它能够顺遂的装置在Mac OSX、Linux、WLS、Cygwin、Solaris和FreeBSD 上,同时还支撑Bash和 ZSH shell。
只需翻开一个新终端机并输入:
$ curl -s "https://get.sdkman.io" | bash
根据响应的指令提醒,完成响应的操纵后继承输入:
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
到这里我们就能够考证 sdk 的装置版本了:
$ sdk version sdk version
上图赤色框标记显现我当前 sdkman 的版本,每次实行 sdk version 敕令时,都邑搜检是不是会有新版本,假如要更新输入 y 就能够
有些体系发行版本不包括 zip 和 unzip,假如装置时碰到相干毛病,能够输入以下敕令装置 zip 和 unzip
$ sudo apt-get install zip unzip
从上面的装置敕令上能够看出,sdkman 默许的装置途径是在$HOME/.sdkman 下,我们也能够自定义装置途径,只须要指定 SDKMAN_DIR 变量值就好了:
$ export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
到这里 sdkman 的装置就完毕了,我们来看看怎样运用
sdkman 运用教程
敕令行下进修一个新玩意当然是检察它的 help 敕令,输入:
$ sdkman help sdk help[object Object]
觉得上图按色彩辨别内容后,sdkman 的运用申明也就完毕了,我们根据上面的图来细致申明一下运用教程
sdk list
先来输入:
$ sdk list sdk list[object Object]
绿色的标记就是 sdkman 集成的一切可用的 candidate,经由过程按回车「enter」按键,会看到更多可用 candidate
我们指定 candidate,输入:
$ sdk list java sdk list java[object Object]
从上图中能够看到一切 java 可用的版本 version,以及标识 indentifier,以及状况 status,我已装置了 java 12 和 11
有了这些信息做铺垫,我们能够装置恣意 sdkman 内置的软件开发包了,继承以 java 为例
sdk install
回看 sdkman help 敕令的输出,运用 install 敕令,我们再装置一个 Java 最新 13.0.1.j9 版本
从上图你能够看出,绿色标记的内容是 list 敕令效果中的 version 值,然则报错不可用,输入indentifier 编号才一般下载,这里须要注重
装置完后,status 就会编程 installed 状况
sdk current
当装置多个版本的 java 时,我们输入下面敕令猎取当前正在用 candidate 的版本
$ sdk current java sdk current java
sdk use
相识了当前运用版本,假如我们想切换到其他版本, 能够输入:
$ sdk use java 12.0.2.j9-adpt
注重⚠️: 这里同样是指定的 indentifier 的值
sdk default
假如我们想指定某个版本为默许版本,能够输入:
$ sdk default java jdk1.8.0_162.jdk
注重⚠️: 这里同样是指定的 indentifier 的值
sdk uninstall
当我们想卸载某个版本能够输入:
$ sdk uninstall java 12.0.2.j9-adpt
注重⚠️: 这里同样是指定的 indentifier 的值
sdk upgrade
假如我们想升级某个 candidate,能够输入:
$ sdk upgrade java sdk flush
运用 sdkman 时刻变长也会逐步发生许多缓存内容,我们能够输入
清算播送音讯:
$ sdk flush broadcast
清算下载的 sdk 二进制文件(长时刻运用后清算,能够节省出许多空间):
$ sdk flush archives
清算暂时文件内容:
$ sdk flush temp
到这里 sdkman 的基础运用就已引见完了,实在这些敕令都不必急,想不起来的时刻实行 sdk help 来暂时检察一下就好
sdkman 卸载
假如我们不喜欢 sdkman 了,我们也能够轻松的卸载掉它:
$ tar zcvf ~/sdkman-backup_$(date +%F-%kh%M).tar.gz -C ~/ .sdkman $ rm -rf ~/.sdkman
末了翻开你的 .bashrc、.bash_profile 和/或许 .profile,找到并删除下面这几行。
#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"
我用的 zshrc,找到 .zshrc 文件删撤除上面内容即可
到这里基于 Unix 体系的,有关 sdkman 的装置,运用及下载都已引见完了,能够上手试一试了
本文来自ki4网,java教程栏目,迎接进修!
以上就是搞定多个java版本的天真切换和治理的细致内容,更多请关注ki4网别的相干文章!