$JAVA_HOME
是常用的环境变量之一,但是在Mac中的设置方式与其余Linux系统有所不同
首先,在终端直接调用的java是/usr/bin/java
,而后者是指向以下目录的软链接
$ ls -l /usr/bin/java
/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
其最终调用的是$JAVA_HOME/bin/java
同时,Mac中可以通过/usr/libexec/java_home
返回$JAVA_HOME
的路径
$ ls -l /usr/libexec/java_home
/usr/libexec/java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
威廉安装了jdk1.7
与jdk1.8
两个版本,是通过dmg格式安装的,系统将其放在了/Library/Java/JavaVirtualMachines/
目录下
$ ls -l /Library/Java/JavaVirtualMachines/
drwxr-xr-x 3 root wheel 102 10 25 14:51 jdk1.7.0_79.jdk
drwxr-xr-x 3 root wheel 102 11 7 21:49 jdk1.8.0_65.jdk
/usr/libexec/java_home -v
参数可返回不同版本JDK的路径,因此可以通过以下的指令实现JDK的切换
$ java -version
java version "1.8.0_65"
$ export JAVA_HOME=$(/usr/libexec/java_home -v '1.7*')
$ java -version
java version "1.7.0_79"