5

Где находится JAVA_HOME на macOS Mojave (10.14) до Lion (10.7)?

11

Проблема с переменной окружения JAVA_HOME на macOS

На последних версиях macOS Java является дополнительным пакетом. Однако после установки Java оказывается, что переменная окружения JAVA_HOME не установлена должным образом.

Как можно правильно настроить JAVA_HOME на macOS?

5 ответ(ов)

0

Проблема, которую вы описываете, может быть связана с настройками среды Java для Hadoop на вашей системе. Для версии Mountain Lion 10.8.2, решение, которое наиболее голосовали, не сработало. Я устанавливал JDK 1.7 через Oracle и Maven из Homebrew.

Мое решение основано на файле hadoop-env.sh, который я также установил через Homebrew. Я добавил следующую строку в файл ~/.bash_profile, и это сработало:

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

Это решение также работает для OS X Yosemite с установленной Java 1.8 от Oracle. Попробуйте этот способ, возможно, он поможет решить вашу проблему.

0

Ни один из предыдущих ответов мне не помог. Я предполагаю, что все ответы для старых версий OS X.

Для OS X Yosemite 10.10 выполните следующие шаги:

  1. Используйте ваш любимый текстовый редактор для открытия файла: ~/.bash_profile.
# Эта команда откроет файл с помощью vim
$ vim ~/.bash_profile
  1. Добавьте следующую строку в файл и сохраните его (в vim это делается с помощью :, а затем wq):
export JAVA_HOME=$(/usr/libexec/java_home)
  1. Затем в терминале введите следующие две команды, чтобы увидеть вывод:
$ source ~/.bash_profile

$ echo $JAVA_HOME

На второй строке вы обновляете содержимое файла .bash_profile.

0

Чтобы установить и переключаться между различными версиями Java на macOS с помощью .bash_profile, можно использовать следующий подход:

В вашем .bash_profile добавьте следующие строки:

export JAVA_HOME8=`/usr/libexec/java_home --version 1.8`
export JAVA_HOME9=`/usr/libexec/java_home --version 9`

Обратите внимание, что для актуальной версии Java используется просто 9, а не 1.9.

Чтобы задать активную версию Java, выполните:

export JAVA_HOME=$JAVA_HOME8
export PATH=$JAVA_HOME/bin:$PATH

Вы также можете создать удобные алиасы для переключения между версиями:

alias j8='export JAVA_HOME=$JAVA_HOME8; export PATH=$JAVA_HOME/bin:$PATH'
alias j9='export JAVA_HOME=$JAVA_HOME9; export PATH=$JAVA_HOME/bin:$PATH'

Теперь вы можете протестировать это в терминале:

% j8
% java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

% j9
% java -version
java version "9"
Java(TM) SE Runtime Environment (build 9+181)
Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

Если вы хотите добавить поддержку более новых версий Java, просто обновите ваш .bash_profile. Например, для Java 10 и 11:

Для Java 10:

export JAVA_HOME10=`/usr/libexec/java_home --version 10`
alias j10='export JAVA_HOME=$JAVA_HOME10; export PATH=$JAVA_HOME/bin:$PATH'

Для Java 11:

export JAVA_HOME11=`/usr/libexec/java_home --version 11`
alias j11='export JAVA_HOME=$JAVA_HOME11; export PATH=$JAVA_HOME/bin:$PATH'

После внесения изменений не забудьте выполнить команду source ~/.bash_profile, чтобы обновить текущую сессию терминала. Теперь вы сможете легко переключаться между версиями Java с помощью команды j8, j9, j10 и j11.

0

Проблема в том, что указанный путь не сработал для инструментов Amazon EC2, так как они ожидают, что bin/java и другие файлы будут находиться под JAVA_HOME. Однако у меня сработал путь /System/Library/Frameworks/JavaVM.framework/Home. Убедитесь, что вы правильно установили переменную окружения JAVA_HOME, указывая на корректный путь к установленной версии Java.

0

Для OS X вы можете выполнить следующую команду в терминале:

export JAVA_HOME=`/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home`

Эта команда устанавливает переменную окружения JAVA_HOME, указывая на текущую версию Java, установленную в вашей системе. Убедитесь, что вы добавили эту строку в ваш файл конфигурации (например, .bash_profile или .zshrc), чтобы переменная сохранялась при перезапуске терминала.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь