我们经常听到jdk、jre、jvm,它们有什么联系呢?
JDK
JDK全称 JAVA development kit JAVA开发工具,它包含 JRE,以及编译器和调试器等开发相关的文件
JRE
全称 JAVA runtime environment,JAVA运行时环境,它包含虚拟机,库函数,以及运行JAVA程序所必须的文件
JVM
全称是 JAVA virtual machine,JAVA虚拟机。它的目的是将 代码编译成 不同平台计算机可识别的代码
image对于版本切换,只要切换JDK,相应的版本都会切换,下面进入正题。
查看当前 JDK 版本
java -version
输出
openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment Zulu11.48+21-CA (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM Zulu11.48+21-CA (build 11.0.11+9-LTS, mixed mode)
查看当前 JDK 的安装目录
/usr/libexec/java_home
输出
/Library/Java/JavaVirtualMachines/jdk11.0.11/Contents/Home
查看已安装的 JDK 版本及目录
所有版本
/usr/libexec/java_home -V
输出
Matching Java Virtual Machines (3):
11.0.11 (x86_64) "Azul Systems, Inc." - "Zulu 11.48.21" /Library/Java/JavaVirtualMachines/jdk11.0.11/Contents/Home
1.8.261.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_172 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk11.0.11/Contents/Home
也可以指定版本
/usr/libexec/java_home -V 1.8
输出
1.8.261.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_172 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
https://www.macz.com/?id=MTk4Mjg0Jl8mMTAxLjIyOC44NS4xODY%3D
Jdk多版本切换(Mac)
1、安装不同版本jdk(可以到官方直接下载安装)
2、编辑.bash_profile文件(在根目录底下)
touch .base_profile 创建该文件(一般不需要创建)
open .bash_profile 打开该文件
source .bash_profile 使该文件生效
# 设置 jdk 8
JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
# 设置 jdk 11
JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk11.0.11/Contents/Home
#alias命令动态切换JDK版本
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
export JAVA_HOME="/usr/libexec/java_home" #最后安装的版本,这样当自动更新时,始终指向最新版本
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:${JAVA_HOME}:${JAVA_HOME}/bin"
通过输入jdk8便可以切换到jdk1.8
输入jdk11便可以切换到jdk11
网友评论