Статьи

Несколько версий Java на OS X Mavericks

Конечно, после OS X Mountain Lion пришло время обновить мой Java на OS X Mavericks.

Давайте посмотрим, как использовать несколько версий Java на Mavericks OS X.

Я планирую использовать Java7 и Java 8 от Oracle и иметь простой способ изменить версию по умолчанию.

Как вы, вероятно, знаете, есть разница между JRE и JDK. Если не очень хороший ответ, вы можете найти  здесь .

Что касается JRE, мы должны помнить, что

1) «Одновременно может быть установлена ​​только одна JRE. Система не будет устанавливать JRE с более низкой версией, чем текущая версия. Если вы хотите установить более раннюю версию JRE, сначала  удалите  текущую версию ».

2) «Установка JRE из Oracle не приведет к   обновлению символических ссылок java -version и не добавит java к вашему пути. Чтобы сделать это, вам нужно установить JDK ».

Я установил JdK 7 и Jdk 8

Сразу после того, как я установил Jdk8, кажется, что simlinks были обновлены и возвращена java -version

MacCris:~ cristianchiovari$ java -version
java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b05)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b05, mixed mode)
MacCris:~ cristianchiovari$

а java_home был установлен в JDK 8

MacCris:~ cristianchiovari$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

В моем .profile я так же определил

export JAVA_HOME=$(/usr/libexec/java_home)

Также я нашел очень практичной эту команду, которая используется для выбора java_home по умолчанию. (кажется, он повторяет все установки Java и последняя версия является инструментом)

MacCris:~ cristianchiovari$ /usr/libexec/java_home -verbose
Matching Java Virtual Machines (7):
1.8.0_20, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
1.7.0_45, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
1.7.0_11, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home
1.7.0_10, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
1.7.0_05, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Теперь для того, чтобы на моем компьютере была установлена ​​последняя версия Jdk7 в качестве java по умолчанию, мне пришлось поменять файл .profile.

#export JAVA_HOME=$(/usr/libexec/java_home)
export JAVA_HOME="`/usr/libexec/java_home -v '1.7*'`"

После открытия нового терминала

MacCris:~ cristianchiovari$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

Все еще

MacCris:~ cristianchiovari$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

Это, однако, не влияет на версию Java по умолчанию, как описано выше.
Чтобы изменить это, вам может понадобиться удалить Jdk, который указывает или использовать какой-нибудь взломанный
как в  http://stackoverflow.com/questions/17885494/how-can-i-change-mac-oss-default- ява-ет-возвращения из-USR-libexec-Java-дома

Вдохновленный от:

http://docs.oracle.com/javase/7/docs/webnotes/install/index.html

https://developer.apple.com/library/mac/qa/qa1170/_index.html

http://stackoverflow.com/questions/15826202/where-is-java-7-installed-on-mac-os-x

http://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html