Убедитесь, что JAVA_HOME правильно установлен
Довольно новый для Java, а также для Mac... Я хочу убедиться, что JAVA_HOME установлен так в других программах, я могу использовать его путь.
Таким образом, я сделал несколько Googling, и вот что я получил:
Если я ввешу /usr/libexec/java_home в терминал, я получу это:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
но если я ввешу echo $JAVA_HOME в терминал, я ничего не верну.
Не могли бы вы рассказать мне, что здесь происходит?
Спасибо.
Ответы
Ответ 1
JAVA_HOME не устанавливается по умолчанию в OSX. Вы можете решить эту проблему, открыв терминал и выполнив следующее:
echo "export JAVA_HOME=`/usr/libexec/java_home`" >> ~/.profile
. ~/.profile
Это приведет к тому, что JAVA_HOME будет установлен при запуске (а не только в текущем сеансе) и сразу же добавит его.
Ответ 2
Проверка пути JAVA_HOME
Попробуйте запустить source .bash_profile
до echo $JAVA_HOME
в корневом каталоге. Это должно исправить проблему, если вы правильно установили JAVA_HOME
. Если вы не уверены, что находитесь в своем корневом каталоге, просто введите cd ~
, нажмите enter и вы там.
![Root Directory]()
- Объяснение:
source
загружает и запускает ваш bash_profile.
Если вы неправильно установили JAVA_HOME
, следуйте приведенным ниже инструкциям, чтобы все прояснилось.
vim .bash_profile
- открывает ваш bash_profile в Vim.
Я включил список команд VIM, которые вам, вероятно, понадобятся для редактирования вашего .bash_profile ниже.
export JAVA_HOME=$(/usr/libexec/java_home)
- создает ENV_VAR (переменную среды) и устанавливает/сохраняет домашний путь JDK в (/usr/libexec/java_home)
.
- Выйдите из vim и наберите следующее в терминале *
source .bash_profile
- загружает и запускает ваш обновленный bash_profile
echo $JAVA_HOME
- возвращает значение, сохраненное в ENV_VAR JAVA_HOME
, который является домашним путем вашей установки JDK.
Команды VIM:
Vim - это редактор для создания или редактирования текстового файла. В vim есть два режима.
-
Command Mode: user can move around the file, delete text, etc.
Insert Mode: user can insert text.
Переключение между режимами:
Command mode to Insert mode
- введите соответствующую букву для действия, которое вы хотите (a, A, i, I, o, O) - подробности для букв ниже.
Insert mode to Command mode
- нажмите клавишу Esc (клавишу выхода)
Команды ввода текста (используются для начала ввода текста)
a - добавить текст после текущей позиции курсора
A - добавить текст в конец текущей строки
i - вставить текст перед текущей позицией курсора
Я - вставить текст в начале строки курсора
o - открыть новую строку после текущей строки и добавить туда текст
O - открыть новую строку перед текущей строкой и добавить туда текст
Команды перемещения курсора (используются только в режиме команд.)
h - перемещает курсор на один символ влево
l - перемещает курсор на один символ вправо
k - перемещает курсор на одну строку вверх
j - перемещает курсор на одну строку вниз
nG или: n - курсор переходит на указанную (n) строку
(ex. 10G goes to line 10)
$ - переместить курсор в конец текущей строки
0 0 - (ноль) Переместить курсор в начало текущей строки
w -- Forward one word
b -- Backward one word
Команды выхода
: wq - записать файл на диск и выйти из редактора
:q! -- Quit (no warning)
: q - Выход (предупреждение выводится, если измененный файл не был сохранен)
ZZ - сохранить рабочее пространство и выйти из редактора (так же, как: wq)
Команды редактора VIM - полный список
osx terminal java
Ответ 3
Пустое значение команды echo означает, что значение не было установлено правильно, как вы ожидали. Вы можете попробовать создать/редактировать файл ~/.profile, добавив строки примерно так:
vi ~/.profile
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
если вам еще не нравится редактор vi, вы также можете создать этот файл в своем домашнем каталоге с помощью программы TextEdit на Mac.
и выполните
source ~/.profile
При загрузке будет установлено свойство JAVA_HOME. Затем вы можете попробовать выполнить
echo $JAVA_HOME
чтобы проверить, правильно ли он настроен, как вы ожидаете.
Вам также может потребоваться установить переменную среды PATH как-то вроде:
export PATH=PATH:$JAVA_HOME/bin
Ответ 4
Измените /etc/launchd.conf
в текстовом редакторе. Если он не существует, создайте его.
Затем добавьте следующую строку в файл:
setenv JAVA_HOME /path/to/java/installation
ИЛИ
просто введите следующую команду в терминале
sudo echo setenv JAVA_HOME /path/to/java/installation >> /etc/launchd.conf
Затем просто введите свой пароль, когда он предложит.
Теперь перезагрузите компьютер и изменения должны были произойти.
Примечание:
Я даю вам совет, основанный на моем опыте работы в Linux. Но они должны
MAC также.
Источник
Ответ 5
Это не относится к новым установкам JDK. По словам Apple:
- вы не должны устанавливать его глобально
- вы должны использовать libexec
http://lists.apple.com/archives/java-dev/2011/May/msg00040.html
Вы можете подумать, что:
$cat/etc/launchd.conf
setenv JAVA_HOME /usr/libexec/java_home
будет работать, но нет, он устанавливает его буквально.
Но, как я уже сказал, согласно этому Apple Engineer, вы все равно не должны устанавливать его глобально.: (
Ответ 6
У меня была эта проблема после установки JAVA_HOME с помощью jenv. Вы можете решить проблему, отредактировав файл
/Applications/Eclipse.app/Contents/Info.plist
Просто установите путь к вашей версии Java, раскомментировав/отредактировав соответствующую часть файла. Для AdoptOpenJDK, установленного с homebrew, это выглядит так:
<key>Eclipse</key>
<array>
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/java</string>
<!-- to use a specific Java version (instead of the platform default) uncomment one of the following options,
or add a VM found via $/usr/libexec/java_home -V
<string>-vm</string><string>/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/java</string>
<string>-vm</string><string>/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home/bin/java</string>
-->
<string>-keyring</string>
<string>~/.eclipse_keyring</string>
</array>