自从Oracle宣布Java开始收费之后,越来越多的人会考虑从[Open JDK][1]下载安装Java环境。可能自己机器上也会同时并存好几个Java版本,本文以macOS为例介绍一下如何从Open JDK安装并进行管理多版本。
下载安装
curl -O https://download.java.net/java/GA/jdk12/33/GPL/openjdk-12_osx-x64_bin.tar.gz
tar xvf openjdk-12_osx-x64_bin.tar.gz
# 解压后文件夹比如名为jdk-12.jdk,移动到macOS管理的JVM目录中去
sudo mv jdk-12.jdk /Library/Java/JavaVirtualMachines
此时,可以输入如下命令查看本机上有几种Java版本:
/usr/libexec/java_home -V
比如生成如下内容:
Matching Java Virtual Machines (2):
12, x86_64: "OpenJDK 12" /Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
1.7.0_76, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_76.jdk/Contents/Home
也可以输入小写v参数查看具体的版本信息,比如查刚刚下载的Java 12:
/usr/libexec/java_home -v 12
会显示/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home
,这个就是它的Java Home。那么就能通过export设置当前的JAVA_HOME环境变量了。比如:
export JAVA_HOME=`/usr/libexec/java_home -v 12`
便捷管理多版本
Linux或者macOS都有bash或者其他shell,以bash为例,bash在每个用户目录下都有.bashrc
文件用于配置用户相关的环境变量(如果没有可以自己创建),可以在该文件下面写如下代码:
# type 'java7' at command prompt to switch to java 7
function java7() {
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
echo "JAVA_HOME is $JAVA_HOME"
java -version
}
# type 'java12' at command prompt to switch to java 12
function java12() {
export JAVA_HOME=`/usr/libexec/java_home -v 12`
echo "JAVA_HOME is $JAVA_HOME"
java -version
}
保存之后,输入命令source .bashrc
,然后可以通过命令java12
或者java7
来便捷切换所使用的Java版本。
[1]:
https://openjdk.java.net/install/