#java #zsh #macos-big-sur
Вопрос:
Я уже устанавливал Java 16 раньше и использовал его. Теперь у меня есть необходимость использовать Java 8. После установки Java 8 я понял, что необходимо установить переменную JAVA_HOME. Я использую macOS Big Sur версии 11.5.2, и мой терминал использует оболочку zsh. Я следил за видео на YouTube, в котором мне было предложено выполнить следующие действия:
- touch .zshrc
- открыть -e .zshrc
- внутри файла .zshrc запишите следующие команды
export JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home' export PATH = $JAVA_HOME/bin:$PATH
и сохраните файл
- источник ~/.zshrc
но когда я выполняю шаг 4 на своем терминале, я, кажется, получаю следующее сообщение:
/Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home not found
Но я могу гарантировать, что структура каталогов присутствует.
Вот вывод, когда я запускаю
ls /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Содержимое/Домашний
вывод
Комментарии:
1. Не могли бы вы, пожалуйста, опубликовать результат выполнения следующего в терминале:
ls /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home
2. sdkman помогает установить несколько версий java и выбрать нужную версию. baeldung.com/java-sdkman-intro
3. Ошибка, которую вы получаете, не должна возникать при экспорте значения. Он не должен проверять, существует ли /Библиотека/Java… Вы можете написать, экспортировать JAVA_HOME=»THEMOON». Вы уверены, что используете правильные кавычки? Возможно, используйте двойные кавычки, чтобы вас не спутали с отступом.
Ответ №1:
Используйте /usr/libexec/java_home
команду. На моей машине у меня есть:
% /usr/libexec/java_home -V
Matching Java Virtual Machines (10):
16.0.1 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 16" /Library/Java/JavaVirtualMachines/adoptopenjdk-16.jdk/Contents/Home
16.0.1 (x86_64) "GraalVM Community" - "GraalVM CE 21.1.0" /Library/Java/JavaVirtualMachines/graalvm-ce-java16-21.1.0/Contents/Home
15.0.2 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 15" /Library/Java/JavaVirtualMachines/adoptopenjdk-15.jdk/Contents/Home
14.0.2 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 14" /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
13.0.2 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 13" /Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home
12.0.2 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 12" /Library/Java/JavaVirtualMachines/adoptopenjdk-12.jdk/Contents/Home
11.0.12 (x86_64) "GraalVM Community" - "GraalVM CE 21.2.0" /Library/Java/JavaVirtualMachines/graalvm-ce-java11-21.2.0/Contents/Home
11.0.11 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
1.8.0_292 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
1.8.0_282 07 (x86_64) "GraalVM Community" - "GraalVM CE 21.0.0.2" /Library/Java/JavaVirtualMachines/graalvm-ce-java8-21.0.0.2/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-16.jdk/Contents/Home
Используйте следующее, чтобы получить Java 1.8 home:
% /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Если все вышеперечисленное подходит для вашей настройки, добавьте следующее в свой
~/.zshrc
:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)