it-swarm.com.ru

Что я должен установить Java_HOME на OSX

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

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

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

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

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

422
Robert Christie

У 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
822
mipadi

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

35
lucasarruda

У меня 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

Вот и все.

19
hygull

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

14
Nicolas Mommaerts

Я на 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
13
Rae

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

9
Clint

То, что выше, больше не работает в YOSEMITE для графических приложений! Как Eclipse, или что-то началось с 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
Pálossy László

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

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

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

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

и было необходимо поместить в мой .bash_profile:

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

Надеюсь помочь

2
Shirow

Мне кажется, что Maven работает с файлом .mavenrc:

echo "export Java_HOME=$(/usr/libexec/Java_home -v 1.8)" > ~/.mavenrc

Я уверен, что я поднял это на SO тоже, просто не могу вспомнить где.

1
maksimov

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

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

export Java_HOME=$(/usr/libexec/Java_home)

тестовое задание

mvn -v

1
KhaledMohamedP

Как отмечают другие ответы, правильный способ найти домашний каталог Java - использовать /usr/libexec/Java_home.

Официальная документация по этому вопросу содержится в Технических вопросах и ответах Apple QA1170: Важные Java Каталоги в OS X : https://developer.Apple.com/library/mac/qa/qa1170/_index.html

1
Kristopher Johnson