Почему я не вижу путь JAVA_HOME на моей MAC OS X 10.11?

Я пытаюсь запустить приложение JAVA на своей MAC OS X 10.11 (El Capitan).

Я использовал эту ссылку, чтобы установить JAVA_HOME на мой MAC OS X 10.11.

Я могу выполнить следующие команды:
java -version
который java

Однако, когда я иду в приложение терминала на MAC и набираю echo $JAVA_HOME, я ничего не вижу. Почему это? Означает ли это, что мой JAVA_HOME установлен неправильно?

Ответ 1

Где определить его

Хорошо, прежде всего, мы должны четко указать, где установить JAVA_HOME.

Упрощенный, вы можете определить его в двух файлах: либо ~/.bashrc, либо ~/bash_profile. По умолчанию первая выполняется для так называемых "интерактивных недействительных оболочек", а последняя используется для "оконных оболочек входа". "Платформа входа" - это именно то, что вы ожидаете: оболочка, которая запускается после входа в систему через командную строку. "Интерактивная оболочка без входа" - это оболочка, которая запускается, например, из графического интерфейса. Итак, в соответствии с этим мы должны поставить наш экспортный оператор в ~/.bashrc.

Боковое примечание. Хотя приложение OS X "Terminal" читает оба упомянутых файла, это не поведение по умолчанию, и поэтому его нельзя рассматривать как таковое. Вот почему я написал объяснение.

Что определяют

Вам нужно экспортировать JAVA_HOME в файл ~/.bashrc, чтобы каждый раз, когда открывается оболочка, задается переменная.

В OS X наборы разработки Java и среды выполнения хранятся в /Library/Java/JavaVirtualMachines/ уже довольно давно. Посмотрите там. Вот как он смотрит на мою машину:

/Library/Java/JavaVirtualMachines/
├── jdk1.7.0_45.jdk
├── jdk1.8.0_20.jdk
├── jdk1.8.0_25.jdk
└── jdk1.8.0_51.jdk

Вложенные папки похожи на это

jdk1.7.0_45.jdk/
└── Contents
    ├── Home
    ├── Info.plist
    └── MacOS

И у нас это получилось. Поэтому, если вы хотите указать на JDK 1.7.0_45, вы добавили следующий оператор в свой .bashrc

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

Чтобы убедиться, что правильные двоичные файлы для этой версии Java вызывают, вы также должны добавить следующее после указанного выше утверждения:

export PATH=$JAVA_HOME/bin:$PATH

Ответ 2

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

что для Java 8.... исходная ссылка, где я нашел ее здесь Установка Java на Mac OS X 10.10 Yosemite и 10.11 El Capitan

Но принятый ответ тоже работает. Просто нужно обратить внимание на изменения пути после обновлений.

Ответ 3

Если вы хотите использовать jdk 1.6 по какой-то причине, Apple перестала поддерживать. Он будет удален после обновления Mac OS. Вы можете получить jdk 1.6 с этой страницы: https://support.apple.com/kb/DL1572?locale=zh_CN

После того, как вы снова установите jdk 1.6, не забудьте подтвердить экспортировать правильный каталог для системной переменной $JAVA_HOME в ~/.bash_profile и т.д. Для меня это "/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home".