Jenv-多次添加相同的java版本

Jenv-多次添加相同的java版本,java,macos,jenv,Java,Macos,Jenv,我正在使用MacBook(OS X Yosemite)管理多个java版本 在添加Java1.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版本显示同一版本的多行,实际上是一个版本吗 jenv versions * system (set by /Users/$USER

我正在使用MacBook(OS X Yosemite)管理多个java版本

在添加Java1.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版本显示同一版本的多行,实际上是一个版本吗

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

如果查看.jenv文件夹,您可以看到同一版本的所有三个不同实例。

我编写了一个脚本来处理我的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 --------------------
}

是的,但是为什么?例如:对于一个版本为什么重复说1.6,1.6.065,oracle64-1.6.0.651.6是主要版本,其他是次要版本。如果您有任何与主版本相关的bug,并且希望使用特定的固定版本,则可以切换到1.6.0.XX或使用特定oracle版本或任何其他版本的版本。
# 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 --------------------
}