Что я должен установить 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)"