Что я должен установить JAVA_HOME на OSX
Многие приложения Java, использующие сценарии оболочки для настройки своей среды, используют переменную среды JAVA_HOME
, чтобы запустить правильную версию Java, найти JRE JAR и т.д.
В OSX 10.6 следующие пути, по-видимому, действительны для этой переменной
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Некоторые из них являются символическими ссылками на фактическую текущую виртуальную машину (как определено в панели предпочтений Java).
Но какой из них следует использовать - или все в порядке использовать любой из них?
Ответы
Ответ 1
Есть ли у Snow Leopard /usr/libexec/java_home
? В 10.5 я просто установил JAVA_HOME
на вывод этой команды, который должен дать вам путь Java, указанный в настройках Java. Вот фрагмент из моего файла .bashrc
, который устанавливает эту переменную:
export JAVA_HOME=$(/usr/libexec/java_home)
У меня не было никаких проблем с этой техникой.
Иногда мне приходится менять значение JAVA_HOME
на более раннюю версию Java. Например, для одной программы, которую я поддерживаю, требуется 32-разрядная Java 5 в OS X, поэтому при использовании этой программы я устанавливаю JAVA_HOME
, запустив:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.5)
Для тех из вас, у кого нет JAVA_HOME
в вашем пути, добавьте его так.
sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home /usr/libexec/java_home
Ответ 2
Кроме того, интересно настроить PATH на отображение JDK. После добавления JAVA_HOME (что можно сделать с примером, приведенным в "mipadi" ):
export JAVA_HOME=$(/usr/libexec/java_home)
Добавить также в ~/.profile:
export PATH=${JAVA_HOME}/bin:$PATH
P.S.: Для OSX я обычно использую .profile в директории HOME вместо .bashrc
Ответ 3
У меня есть MAC OS X (Sierra) 10.12.2.
Я установил JAVA_HOME для работы с React Native (для приложений для Android), выполнив следующие шаги.
-
Откройте терминал (Command + R, введите Terminal, нажмите ENTER).
-
Добавьте следующие строки в ~/.bash_profile.
export JAVA_HOME=$(/usr/libexec/java_home)
-
Теперь запустите следующую команду.
source ~/.bash_profile
-
Вы можете проверить точное значение JAVA_HOME, введя следующую команду.
echo $JAVA_HOME
Возвращаемое значение (output) будет выглядеть следующим образом.
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
Что это.
Ответ 4
В настоящее время кажется, что Java установлена в /Library/Java/JavaVirtualMachines
Ответ 5
Я на Mac OS 10.6.8
Самое простое решение для меня просто вставляется в
$ export JAVA_HOME=$(/usr/libexec/java_home)
Чтобы проверить, работает ли он, введите
$ echo $JAVA_HOME
показывает
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
вы также можете проверить
$ which java
Ответ 6
Я использую /Library/Java/Home
. Как работает панель настроек, это должно быть актуально с вашей предпочтительной версией.
Ответ 7
То, что выше, больше не работает в YOSEMITE для графических приложений! Как затмение или что-то началось с Spotlight. (.bash_profile, launchd.conf работает только для терминальных сессий.) Перед запуском eclipse просто откройте окно терминала и введите следующую команду:
launchctl setenv JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
(С вашим путем установки! Возможно, работает и с $ (/usr/libexec/java_home) вместо полного пути.)
Прочитайте всю отличную статью о постоянном решении здесь: Установка переменных среды через launchd.conf больше не работает в OS X Yosemite/El Capitan/macOS Sierra?
Ответ 8
Я нашел этот stack, чтобы помочь, у меня была такая же проблема, и я мог исправить:
Мой путь к Java был здесь:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
и был необходим для ввода в мой .bash_profile
:
export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
Помощь надежда
Ответ 9
Пропустить настройку терминала с тех пор, как вы упомянули приложения, установить постоянную переменную окружения (работает для macOS Sierra, также работать для El Capitan):
launchctl setenv JAVA_HOME $(/usr/libexec/java_home -v 1.8)
(это установит JAVA_HOME к последнему 1.8 JDK, скорее всего, вы прошли через серверные обновления, например, javac 1.8.0_101, javac 1.8.0_131)
Конечно, измените 1.8 до 1.7 или 1.6 (действительно?), Чтобы удовлетворить ваши потребности и вашу систему.
Ответ 10
Как отмечают другие ответы, правильным способом найти домашний каталог Java является использование /usr/libexec/java_home
.
Официальная документация для этого находится в Apple Technical Q & A QA1170: важные Java-каталоги на OS X: https://developer.apple.com/library/mac/qa/qa1170/_index.html
Ответ 11
Для меня maven, похоже, работает с файлом .mavenrc
:
echo "export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)" > ~/.mavenrc
Я уверен, что тоже поднял это на SO, просто не могу вспомнить, где.
Ответ 12
Создать файл ~/.mavenrc
затем вставьте это в файл
export JAVA_HOME=$(/usr/libexec/java_home)
Тест
mvn -v
Ответ 13
export JAVA_HOME =/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
работал на меня.
Ответ 14
Для пользователей Fish Shell используйте следующее: alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"