Что я должен установить JAVA_HOME на OSX - PullRequest
423 голосов
/ 28 августа 2009

Многие приложения Java, использующие сценарии оболочки для настройки своей среды, используют переменную среды JAVA_HOME для запуска правильной версии Java, поиска JAR-файлов JRE и т. Д.

В OSX 10.6 для этой переменной допустимы следующие пути

/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current

Некоторые из них являются символическими ссылками на фактическую текущую виртуальную машину (как определено на панели настроек Java).

Но какой из них следует использовать - или можно использовать любой из них?

Ответы [ 13 ]

824 голосов
/ 28 августа 2009

Есть ли у Снежного барса /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
35 голосов
/ 08 марта 2010

Кроме того, интересно, чтобы ваш 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

19 голосов
/ 21 июня 2017

У меня MAC OS X (Sierra) 10.12.2 .

Я установил JAVA_HOME для работы на React Native (для приложений Android), выполнив следующие шаги.

  • Открыть терминал (Command + R, введите Терминал, нажмите ENTER).

  • Добавьте следующие строки в ~ / .bash_profile . export JAVA_HOME=$(/usr/libexec/java_home)

  • Теперь выполните следующую команду. source ~/.bash_profile

  • Точное значение JAVA_HOME можно проверить, введя следующую команду. echo $JAVA_HOME

Возвращаемое значение (вывод) будет примерно таким, как показано ниже. /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home

Вот и все.

14 голосов
/ 08 мая 2013

В настоящее время Java, похоже, установлена ​​в /Library/Java/JavaVirtualMachines

13 голосов
/ 12 февраля 2015

Я на 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
9 голосов
/ 28 августа 2009

Я склонен использовать /Library/Java/Home. То, как работает панель настроек, должно соответствовать текущей версии.

8 голосов
/ 11 мая 2015

То, что выше, больше не работает в YOSEMITE для графических приложений! Как затмение или что-то началось с Spotlight. (.bash_profile, launchd.conf работает только для терминальных сессий.) Перед началом затмения просто откройте окно терминала и введите следующую команду:

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?

2 голосов
/ 11 июня 2017

Пропуск настройки терминала, поскольку вы упомянули приложения, постоянная настройка системной переменной среды (работает для 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 (правда?), Чтобы удовлетворить ваши потребности и вашу систему

2 голосов
/ 13 октября 2015

Я нашел этот стек , чтобы помочь, у меня была та же проблема, и я мог исправить:

Мой путь Java был здесь:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

и нужно было положить в мою .bash_profile:

export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"

Надеюсь, что поможет

1 голос
/ 28 декабря 2016

Создать файл ~/.mavenrc

затем вставьте это в файл

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

тест

mvn -v

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...