Подтвердить что ты не робот

Могут ли Java 7 и Java 8 сосуществовать на OSX

Я установил Java 8 для целей разработки, но теперь я хочу снова использовать Java 7.

Как это сделать?

Кажется, это безумно сложно.

Большое спасибо заранее. (Я пытался использовать guigarage, и это не работает)

4b9b3361

Ответ 1

От терминала: 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 7 или use-java 8, чтобы изменить текущую версию оболочки Java.

Ответ 2

Используйте jEnv.

Если ваша система запускает homebrew, вы можете установить ее с помощью

brew install jenv

(Возможно, вам понадобится запустить brew update, чтобы получить самые последние рецепты)

Добавьте его в свой профиль bash, используя

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

Запустите новую оболочку, чтобы это изменение было эффективным.

Затем вы можете добавить jdks следующим образом:

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

укажите доступные версии с помощью

jenv versions

И переключитесь между средами с помощью

jenv global oracle64-1.8.0.25

Для них существует множество дополнительных опций, например, переход на один каталог или временно в одной оболочке. http://www.jenv.be для них.

jEnv работает, создавая прошивные скрипты для исполняемых файлов java и помещая их в начало пути. Некоторые сторонние Java-инструменты, такие как ant и maven полагаются на JAVA_HOME. Чтобы убедиться, что JAVA_HOME установлен правильно, запустите

jenv enable-plugin export

Также есть jenv-плагины для таких инструментов, как maven и groovy.

Ответ 3

Вот отличный ответ о том, как переключить версию Java из командной строки в OSX Mavericks (источник Neeme Praks):

Отредактируйте ~/.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

Ответ 4

После установки откройте "Настройки Java" (Launchapad/Others):

enter image description here

и перетащите предпочтительную версию поверх списка:

enter image description here