JDK相关--多JDK版本

[toc]

JDK相关–多JDK版本

一、背景

某些时候,我们执行java命令,可能会有版本要求。

如,我们在使用新版的bugly符号表上传脚本的时候,发现其要求我们使用jdk8。而我们打包apk的时候需要使用jdk11。

问:此时我们怎么处理?

解决:使用多jdk,并灵活切换。

二、查看当前使用的java版本

1、查看当前使用的java版本

1
java -version

image-20230522013119037

2、查看本地所有已安装的jdk

2.1、jdk 常见的存放位置

序号 描述 路径 其他
1 系统本地 JDK Home /Library/Java/JavaVirtualMachines
2 Android Studio的 JDK Home /Applications/Android\ Studio.app/Contents/jbr/Contents/Home
3 自定义的 JDK 目录 依自定义

2.2、jdk 各个位置的查看

2.2.1、查看【系统 JDK Home】已安装的jdk
1
2
3
4
5
6
# 方法1:
$ cd /Library/Java/JavaVirtualMachines
$ ls -al

# 方法2:
$ /usr/libexec/java_home -V

方法1的结果如下:

image-20230522013520673

方法2的结果如下:

image-20230615184042643

经查看我们已经在系统jdk home下安装了jdK17和jdk1.8了。

2.2.2、查看【Android Studio的 JDK Home】已安装的jdk

但是上述的方法并不代表着检查到了本地所有的jdk版本。比如通过Android Studio 下载的,默认是放在

1
$ open /Applications/Android\ Studio.app/Contents/jbr/Contents/Home # 空格需要通过反斜杠\来转义

image-20230615185217226

三、下载想要安装的其他jdk

如果已安装请忽略此步。

1、【系统 JDK Home】下jdk的安装

以安装jdk1.8为例,请进入其相应的下载地址:javase8u211-later-archive-downloads.html

2、【Android Studio的 JDK Home】下jdk的安装

安装方法如上述《查看【Android Studio的 JDK Home】已安装的jdk》中的截图中点击+号即可。

下载安装后,按照下文的jdk切换方式,即可使用想要的jdk版本(如执行java -version)。

四、切换 jdk

1、配置切换jdk版本的环境变量

①打开你的环境变量文件

1
2
3
4
5
# 苹果的intel芯片(x86),使用如下命令
open ~/.bash_profile

# 苹果的arm芯片(m1或者m2),使用如下命令
open ~/.zshrc

②在其中添加以下内容

1
2
3
4
5
6
7
8
#添加下面的代码
export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)"
export JAVA_17_HOME="$(/usr/libexec/java_home -v 17)"
export JAVA_11_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk11='export JAVA_HOME=$JAVA_11_HOME'
alias jdk17='export JAVA_HOME=$JAVA_17_HOME'
export JAVA_HOME=$JAVA_8_HOME

在上述代码中,我们设置两个 JAVA_8_HOME 、 JAVA_11_HOME 、 JAVA_17_HOME 三个环境变量。并让 JAVA_HOME 默认等于 JAVA_8_HOME。

同时我们使用alias命令:给命令定义别名,从而得到jdk8jdk11jdk17三个终端命令。其使得当我们在终端输入jdk8的时候,我们的JAVA_HOME 会变成1.8的版本,从而执行的java也就变成了1.8。

③生效环境变量

1
2
3
4
5
# 苹果的intel芯片(x86),使用如下命令
source ~/.bash_profile

# 苹果的arm芯片(m1或者m2),使用如下命令
source ~/.zshrc

④在终端执行刚生成的命令,正式切换java版本

image-20230522015426032

五、Android Studio 中的 jdk 截图

image-20230615185843914

End

感谢浏览。