2015-10-27 21 views
0

我使用Jenv來管理我的MacBook(OS X Yosemite)上的多個java版本。Jenv - 同一個java版本多次添加

jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 
oracle64-1.6.0.65 added 
1.6.0.65 added 
1.6 added 

,並同時加入的Java 1.8

jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home 
oracle64-1.8.0.60 added 
1.8.0.60 added 
1.8 added 

和jenv版本顯示的同一版本的多個線INFACT它是一個版本?

jenv versions 

    * system (set by /Users/$USERNAME/.jenv/version) 
     1.6 
     1.6.0.65 
     1.8 
     1.8.0.60 
     oracle64-1.6.0.65 
     oracle64-1.8.0.60 

回答

0

如果您在.jenv文件夾內查看,您可以看到同一版本的所有三個不同實例。

+0

是的,但是爲什麼?例如:對於一個版本爲什麼它重複說1.6,1.6.065,oracle64-1.6.0.65 –

+0

1.6是主要版本,其他版本是次要版本。如果您有與主要版本相關的任何錯誤,並且想要使用特定的固定版本,則可以切換到1.6.0.XX或使用特定Oracle版本或其他任何版本。 – Vishwaksena

0

我寫了一個腳本來處理我的JEnv環境。

# configure Java http://www.jenv.be/ 
# install Java: brew cask install java, brew cask install java7 
# set global default: setJavaGlobal 1.7, jenv global 1.7 
# set local folder default: jenv local 1.8 
# 
JENV_HOME=$HOME/.jenv 
export PATH=.:$PATH:$JENV_HOME/bin 
eval "$(jenv init -)" 
#export JAVA_HOME=$(/usr/libexec/java_home) 
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`" 
alias jenv_set_java_home='export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"' 
setJavaGlobal() { 
    jenv global $1; 
    jenv_set_java_home 
    echoJavaSetup 
} 
setJavaLocal() { 
    jenv local $1; 
    jenv_set_java_home 
    echoJavaSetup 
} 
echoJavaSetup() { 
    echo -------------------- 
    echo NEW JAVA SETUP: 
    echo " PATH: $PATH" 
    export JAVA_VERSION=`java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'` 
    echo " JAVA: $JAVA_VERSION, $JAVA_HOME" 
    jenv versions 
    echo -------------------- 
} 
removeJavaLocal() { 
    rm -rf ./.java-version 
} 
showJava() { 
    echo -------------------- 
    echo EXISTING JAVA SETUP: 
    echo " PATH: $PATH" 
    export JAVA_VERSION=`java -version 2>&1 >/dev/null | grep 'java version' | awk '{print $3}'` 
    echo " JAVA: $JAVA_VERSION, $JAVA_HOME" 
    jenv versions 
    if [ -f ./.java-version ]; then 
    echo "Using Java LOCAL DEFAULT. Not using global default! Run command 'removeJavaLocal' to change to global default." 
    fi 
    echo -------------------- 
}