1

我安装了oracle 和adoptOpen 的JDK。

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    11.0.5, x86_64: "Java SE 11.0.5"    /Library/Java/JavaVirtualMachines/jdk-11.0.5.jdk/Contents/Home
    11.0.4, x86_64: "AdoptOpenJDK 11"   /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
    1.8.0_161, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home

过去,我使用以下方法在 jdk11 和 jdk1.8 之间切换:

alias jdk11='export JAVA_HOME=`/usr/libexec/java_home -v11`'
alias jdk8='export JAVA_HOME=`/usr/libexec/java_home -v1.8`'

但我看不到如何在两个 jdk11 提供程序之间进行选择。java_home -v11将始终为我提供 Oracle 路径,并且帮助/手册页没有显示任何我可以用来区分它们的选项。

如何判断java_home我想要“AdoptOpenJDK 11”而不是“Java SE 11”?

4

2 回答 2

1

在此处输入图像描述

Computer> Properties> Advanced System Settings>Environment Variables

于 2019-10-25T20:10:38.007 回答
1

java_home似乎没有办法按供应商/供应商进行过滤。我能够过滤输出java_home -V以获得你想要的。

对于您的特定示例,

alias jdk11='export JAVA_HOME=`/usr/libexec/java_home -V 2>&1 > /dev/null | grep "OpenJDK 11" | sed -e "|.*/Library|/Library|"`'
于 2021-12-31T22:51:19.430 回答