2014-01-07 32 views
25

我已經安裝了Java 8用於開發目的,但現在我想再次使用Java 7。Java 7和Java 8可以共存在OSX上

我該怎麼做?

這似乎是非常困難。

非常感謝提前。 (我使用guigarage嘗試和不工作)

+1

這取決於。一般來說,你應該改變'PATH'變量值。但是當涉及到開發時,它依賴於IDE。您應該看到如何在IDE之間切換JDK。 –

+0

IntellIJ根本不會啓動,因爲我的默認Java是Java 8. – Dan

+0

嘗試刪除當前的'JRE'並再次安裝'JRE 7'。 –

回答

37

從終端:export JAVA_HOME=`/usr/libexec/java_home -v 1.x`,其中x是Java版本。

我個人有一個殼函數,它是對我來說:

use-java() { 
    export JAVA_HOME=`/usr/libexec/java_home -v 1.$1` 
} 

我只需要調用use-java 7use-java 8爲了改變我目前的shell的Java版本。

+0

謝謝 - 但據我所知,它只有在程序在啓動腳本中使用JAVA_HOME變量時纔有用。如果您正在啓動eclipse或Intellij或者只是使用機器上默認的java的東西。你能改變它嗎? – Dan

+1

'JAVA_HOME'指定您在終端中使用的JDK的路徑(例如,對於'java'或'javac')。它不影響終端之外的Java版本。 IDE有自己的JDK版本配置。在IntelliJ中,您需要打開項目首選項,轉至* Project *面板,然後選擇要使用的JDK版本。 –

+1

我說的是實際運行IntelliJ(IDE是一個Java程序)。 – Dan

1

安裝完成後,打開Java首選項(Launchapad /其他):

enter image description here

並拖動列表頂部的首選版本:

enter image description here

+2

在我的Mac版本(10.9.1)上,屏幕看起來有些不同。您從系統偏好設置中打開它。它只在列表中顯示我當前版本的Java(Java 8)。 – Dan

+0

再次安裝java 7,它將被添加到列表中。 – user987339

+0

我這樣做了,現在它說平臺是1.8但產品是1.7? java -version說1.8。你知道我是如何從我的機器上完全刪除java 8的嗎? – Dan

5

這裏是如何在OSX小牛隊(由Neeme Prakssource)的命令行開關Java版本的出色答卷:

編輯您的~/.bash_profile並添加以下內容:

function setjdk() { 
    if [ $# -ne 0 ]; then 
    removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin' 
    if [ -n "${JAVA_HOME+x}" ]; then 
    removeFromPath $JAVA_HOME 
    fi 
    export JAVA_HOME=`/usr/libexec/java_home -v [email protected]` 
    export PATH=$JAVA_HOME/bin:$PATH 
    fi 
    echo JAVA_HOME set to $JAVA_HOME 
    java -version 
} 
function removeFromPath() { 
    export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;") 
} 

(將上述功能添加到您的.bash_profile

用法:

$ setjdk 1.7 
24

使用jEnv

如果你的系統運行homebrew,您可以使用

brew install jenv 

安裝(您可能需要運行brew update首先得到最新的食譜)

將它添加到使用

您的bash的個人資料
echo 'eval "$(jenv init -)"' >> ~/.bash_profile 

啓動一個新的shell以使該配置文件有效更改。使用

jenv versions 

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 

列表中的可用版本,並使用

jenv global oracle64-1.8.0.25 

有大量更多的自定義選項,環境之間進行切換,如:

可以再加入JDK的這樣每個目錄切換或暫時在一個shell中切換,請參見http://www.jenv.be爲那些。

jEnv通過爲java可執行文件創建shim腳本並將它們放在路徑的前端來工作。一些像ant和maven這樣的第三方java工具依賴於JAVA_HOME。爲了確保JAVA_HOME得到正確設置,運行

jenv enable-plugin export 

還有像Maven和常規工具jenv插件。

+1

如果使用zsh,請使用以下命令將其添加到.zshrc中。$ echo'eval「$(jenv)$ echo'export PATH =」$ HOME/.jenv/bin:$ PATH「'>>〜/ .zshrc $ echo'eval」$ init - )「'>>〜/ .zshrc –

相關問題