我的.zshrc文件中有以下内容,因此我可以在 JDK 8 和 JDK 11 之间快速切换。但是我也安装了 JRE 8 和 JRE 11。
当我运行java8别名(使用/usr/libexec/java_home脚本)时,它将默认为 JRE 而不是 JDK,因为它们的版本号相同。
是否可以过滤掉 JRE 或指定 JDK?
# java_home
java_version() {
/usr/libexec/java_home -v $1
export JAVA_HOME=$(/usr/libexec/java_home -v $1)
print "Switching JAVA_HOME to $JAVA_HOME"
}
alias java8="java_version 1.8"
alias java11="java_version 11"
export DEFAULT_JAVA_VERSION=1.8
export JAVA_HOME=$(/usr/libexec/java_home -v $DEFAULT_JAVA_VERSION) #default to 8
已安装的 JVM 列表:
/usr/libexec/java_home -V
Matching Java Virtual Machines (4):
11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK (JRE) 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jre/Contents/Home
1.8.0_292 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK (JRE) 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jre/Contents/Home
1.8.0_292 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
编辑:“-v”标志仅输出传递的版本的路径。并且“-V”标志将输出系统中检测到的所有版本。