這裡介紹如何切換 Mac OS X 的 Java 版本,根據不同程式選擇適合的 JRE 版本。

有時候因為某些舊版程式的需要,我們會在電腦中安裝各種不同的 Java 版本,而每一個程式需要的 Java 版本也都不一樣,以下是在 Mac OS X 中切換 JRE 版本的方法。

設定預設 Java 版本

首先查詢一下自己的 Mac OS X 中有安裝的 Java 版本有哪些:

/usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    1.8.0_51, x86_64:	"Java SE 8"	/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
    1.7.0_45, x86_64:	"Java SE 7"	/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
    1.6.0_65-b14-468, x86_64:	"Java SE 6"	/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-468, i386:	"Java SE 6"	/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home

~/.bash_profile 中加入 JAVA_HOME 的設定:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_51`

java_home 這個指令允許使用部分的版本名稱來指定,所以我們也可以只指定主要的 Java 版本,這樣比較簡潔:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

設定好之後,以後開啟終端機時,Java 的執行環境預設就會是自己選定的版本了:

java -version
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

個別程式設定 Java 版本

如果某些特定的程式需要不同版本的 Java 執行環境,我們可以在指令稿中先設定好 Java 的版本,再執行該程式:

#!/bin/sh
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
/your/program

透過這樣的方式,我們就可以針對不同的程式設定不同的 JRE 版本,而且也不會影響到預設的 Java 執行環境。

如果要在終端機中直接執行程式,可以用這樣的方式來對個別的指令設定 Java 版本:

JAVA_HOME=`/usr/libexec/java_home -v 1.7` /your/program

參考資料:stackoverflow