动态切换JDK版本

151 阅读1分钟

0x00背景

最近接手了一个新项目, 新项目需要使用的JDK版本为JDK 11, 由于现有的主营项目需要使用的JDK版本为JDK 17, 所以电脑的JDK默认版本一直为JDK 17, 因此在终端编译新项目时,需要动态切换JDK版本为11.

0x01 操作

环境: MacOS + zsh

执行如下命令, 确认电脑已经安装的JDK版本有哪些

/usr/libexec/java_home -V

输出如下

Matching Java Virtual Machines (2):
    17.0.9 (arm64) "Azul Systems, Inc." - "Zulu 17.46.19" /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
    11.0.15 (arm64) "Azul Systems, Inc." - "Zulu 11.56.19" /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home

可见已经安装的JDK版本有17和11.

当编译新项目时, 在终端上执行如下两个命令(直接复制,丢到终端上回车运行即可)

export JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH=$JAVA_HOME/bin:$PATH

接着再执行如下命令查看是否已经切换成功

java -version

输出如下则说明已经切换成功

openjdk version "11.0.15" 2022-04-19 LTS
OpenJDK Runtime Environment Zulu11.56+19-CA (build 11.0.15+10-LTS)
OpenJDK 64-Bit Server VM Zulu11.56+19-CA (build 11.0.15+10-LTS, mixed mode)

0x02 总结

本文介绍了一种动态临时切换JDK版本的方法(仅当前shell标签页生效, 其他标签页不受影响), 既能避免频繁修改系统的环境变量配置, 又能动态临时切换JDK版本, 满足不同项目需要不同JDK版本的要求.