- 查看JDK的安装目录
- 查看系统当前正在使用的 JDK 版本信息
- 配置环境变量 JAVA_HOME
通常情况下,macOS安装JDK,默认是安装在 /Library/Java/JavaVirtualMachines 目录下。
使用 java_home 命令查看:
[~]$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
17.0.1 (x86_64) "Oracle Corporation" - "OpenJDK 17.0.1" /Users/liaowenxiong/Library/Java/JavaVirtualMachines/openjdk-17.0.1/Contents/Home
9.0.4 (x86_64) "Oracle Corporation" - "Java SE 9.0.4" /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
/Users/liaowenxiong/Library/Java/JavaVirtualMachines/openjdk-17.0.1/Contents/Home
从查询结果可以得知,系统有两个版本的 JDK,而系统推荐使用的是 openjdk-17.0.1。
[~]$ /usr/libexec/java_home
/Users/liaowenxiong/Library/Java/JavaVirtualMachines/openjdk-17.0.1/Contents/Home
上面命令的结果也是系统推荐使用的 JDK 版本。
另请参见《java_home命令详解》。
查看系统当前正在使用的 JDK 版本信息查询系统当前正在使用哪个 JDK 版本,可以执行下面的命令查询:
[~]$ java -version
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)
查看系统使用的 JDK 完整版本:
[~]$ java -fullversion
java full version "9.0.4+11"
其实 java -version
获取的是环境变量 JAVA_HOME
的值。
可以在 /etc/profile
或者 ~/.bash_profile
文件中配置环境变量,/etc/profile
是配置系统级别的环境变量;~/.bash_profile
是配置用户级别的环境变量。
例如在 /etc/profile
文件中配置如下的命令脚本:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home"
export CLASS_PATH="$JAVA_HOME/lib"
export PATH=".:$PATH:$JAVA_HOME/bin"
立即生效配置:
[~]$ source /etc/profile
查看环境变量 JAVA_HOME:
[~]$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
[~]$ java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
另外,还可以在配置文件中输入下面形式的命令语句来配置环境变量 JAVA_HOME:
export JAVA_HOME="$(/usr/libexec/java_home)" # 双引号可以去掉
$(/usr/libexec/java_home) 会去执行小括号内的命令,最后返回执行结果。/usr/libexec/java_home 查询的是系统推荐的 JDK 路径,所以 $(/usr/libexec/java_home) 最终返回的就是系统推荐的 JDK 路径。
或者通过命令 java_home 指定具体版本的 JDK:
export JAVA_HOME="$(/usr/libexec/java_home -v9.0.4)" # 双引号可以去掉
或者下面这种形式的命令语句:
export JAVA_HOME="`/usr/libexec/java_home -v9.0.4`" # 双引号可以去掉
另请参见《Java命令详解》。