Многие приложения Java, использующие сценарии оболочки для настройки своей среды, используют JAVA_HOME
переменную среды для запуска правильной версии Java, поиска JAR-файлов JRE и т. Д.
В macOS X 10.6 следующие пути являются допустимыми для этой переменной
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Некоторые из них являются символическими ссылками на фактическую текущую виртуальную машину (как определено на панели настроек Java).
Но какой из них следует использовать - или можно использовать любой из них?
java
macos
configuration
Роберт Кристи
источник
источник
Ответы:
Я просто установил
JAVA_HOME
вывод этой команды, который должен дать вам путь Java, указанный в ваших настройках Java. Вот фрагмент из моего.bashrc
файла, который устанавливает эту переменную:Я не испытывал никаких проблем с этой техникой.
Иногда мне приходится менять значение
JAVA_HOME
на более раннюю версию Java. Например, для одной поддерживаемой мной программы требуется 32-разрядная версия Java 5 в OS X, поэтому при использовании этой программы я установилJAVA_HOME
:Для тех из вас, у кого нет
java_home
на вашем пути, добавьте это так.Рекомендации :
Oracle объясняет команду java_home
Статья по настройке JDK в Spring Tool Suite (Eclipse 2019) в MacOS
источник
Кроме того, интересно, чтобы ваш PATH отражал JDK. После добавления JAVA_HOME (что можно сделать с примером, приведенным в 'mipadi'):
export JAVA_HOME=$(/usr/libexec/java_home)
Добавьте также в ~ / .profile:
export PATH=${JAVA_HOME}/bin:$PATH
PS: для OSX я обычно использую .profile в директории HOME вместо .bashrc
источник
.bash_profile
- почему вы используете, кроме generic.profile
?.profile
является общим, он будет работать сsh
илиbash
, пока.bash_profile
является эксклюзивным дляbash
. Также это изолирует настройки от приложений, которые используют.bash_profile
, какMacPorts
. Но вы можете смело использовать любой из двух. Подробнее об этом здесь.bash_profile
переопределение.profile
..bash_profile
является специфическим, тогда.profile
как универсальным, для всехsh
вариантов.java
в ваш/usr/bin
каталог, не нужно явно добавлять$JAVA_HOME
ваш путь.я имею 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
Вот и все.
источник
$JAVA_HOME
относится$(/usr/libexec/java_home)
и$(/usr/libexec/java_home)
внутренне упоминается как/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
Система.Я на Mac OS 10.6.8
Самое простое решение работает для меня, просто положить в
Чтобы проверить, работает ли он, вставьте
это показывает
Вы также можете проверить
источник
В настоящее время Java, кажется, установлен в
/Library/Java/JavaVirtualMachines
источник
Я склонен использовать
/Library/Java/Home
. То, как работает панель настроек, должно соответствовать вашей предпочтительной версии.источник
Это выше не работает в YOSEMITE для графических приложений! Как затмение или что-то началось с Spotlight. (.bash_profile, launchd.conf работает только для терминальных сессий.) Перед запуском eclipse просто откройте окно терминала и введите следующую команду:
(С вашим путем установки! Возможно, работает и с $ (/ usr / libexec / java_home) вместо полного пути.)
Прочитайте всю отличную статью о постоянном решении здесь: Установка переменных среды через launchd.conf больше не работает в OS X Yosemite / El Capitan / macOS Sierra?
источник
Я нашел этот стек, чтобы помочь, у меня была та же проблема, и я мог бы исправить:
Мой путь Java был здесь:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
и нужно было положить в мою
.bash_profile
:export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
Надеюсь помочь
источник
Пропуск настройки терминала, поскольку вы упомянули приложения, постоянная настройка системной переменной среды (работает для macOS Sierra; должна работать и для El Capitan):
(это установит JAVA_HOME на последнюю версию 1.8 JDK, есть вероятность, что вы прошли через несколько обновлений, например, javac 1.8.0_101, javac 1.8.0_131)
Конечно, измените 1.8 на 1.7 или 1.6 (правда?) в соответствии с вашими потребностями и вашей системой
источник
Как отмечают другие ответы, правильный способ найти домашний каталог Java - использовать
/usr/libexec/java_home
.Официальная документация для этого находится в Технических вопросах и ответах Apple QA1170: Важные каталоги Java на OS X : https://developer.apple.com/library/mac/qa/qa1170/_index.html
источник
Для меня Maven, кажется, работает от
.mavenrc
файла:Я уверен, что я поднял это на SO тоже, просто не могу вспомнить, где.
источник
Создать файл
~/.mavenrc
затем вставьте это в файл
export JAVA_HOME=$(/usr/libexec/java_home)
тестовое задание
mvn -v
источник
Рекомендуется проверить оболочку терминала по умолчанию перед установкой переменной среды JAVA_HOME с помощью следующих команд:
Если ваш терминал по умолчанию - / bin / bash (Bash), то вам следует использовать метод @hygull
Если ваш терминал по умолчанию - / bin / zsh (Z Shell), то вы должны установить эти переменные среды в файле ~ / .zshenv со следующим содержимым:
Точно так же, для любого другого типа терминала, не упомянутого выше, вы должны установить переменную окружения в соответствующем файле терминала.
Этот метод проверен на работоспособность в macOS Mojave версии 10.14.6 .
источник
Для пользователей Fish Shell используйте что-то вроде следующего:
alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"
источник