Ответ 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