Конечно, после 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