Java — один из самых влиятельных и популярных языков программирования. Первоначально выпущенный Sun Microsystems в 1995 году, Java является кросс-платформенным языком, который теперь является частью почти всех аспектов технологии. Вы найдете Java везде — в банковском деле, финансовых услугах, больших данных, фондовом рынке, мобильных устройствах (Android) и многом другом. Он легко входит в число лучших языков программирования и, вероятно, останется таковым еще как минимум десять лет.
В этом руководстве мы покажем один из основных и важных шагов настройки Java в вашей системе — настройку переменной среды JAVA_HOME в Linux.
Предпосылки
Прежде чем погрузиться глубже, давайте быстро вспомним различные концепции и ключевые слова.
JDK против JRE
Если вас интересует Java, вы, вероятно, уже знакомы с ними. JDK означает «Комплект для разработки Java». Он содержит необходимые инструменты и библиотеки для создания и запуска (с использованием JRE) приложений Java. Если вы заинтересованы в обучении или работе над проектом Java, вам подойдет JDK.
JRE расшифровывается как «Java Runtime Environment». Этот пакет содержит инструменты и библиотеки, необходимые для запуска приложения Java. Это необходимо для запуска любой Java-программы в системе.
Обратите внимание, что JDK по умолчанию поставляется вместе с JRE. Таким образом, вам не нужно устанавливать JRE отдельно, если у вас уже установлен JDK.
Переменные среды
В Linux переменные среды содержат различную системную информацию, доступную приложениям. Информация может касаться того, как приложения работают в среде, различном поведении системы и т. д.
В зависимости от доступности переменных мы можем разделить их на 2 категории.
- Локальные переменные среды: эти переменные задаются для каждого пользователя. Только конкретный пользователь может использовать их в своих сеансах.
- Глобальные переменные среды: эти переменные доступны всем в системе.
JAVA_HOME
JAVA_HOME — это переменная среды. Он содержит расположение двоичных файлов Java. Многие приложения используют эту переменную среды для поиска двоичных файлов и библиотек Java.
Он может быть установлен как на локальной, так и на глобальной основе.
Настройка JAVA_HOME
Теперь, когда мы понимаем, что такое JAVA_HOME, пришло время научиться устанавливать его значение.
Во-первых, выясните версию установленной Java. Этот номер версии часто связан с двоичным путем Java.
$ java —version
Если Java была установлена глобально, то установка, скорее всего, хранится в следующем месте.
$ cd /usr/lib/jvm
Этот каталог содержит исполняемые файлы и библиотеки Java. Проверьте содержимое каталога.
$ ls —lh
В моем случае у меня на Ubuntu установлен OpenJDK 11 (подробнее об установке последней версии Java на Ubuntu ). Из вывода мы видим, что такие записи, как «default-java» и «java-1.11.0-openjdk-amd64», являются символическими ссылками «java-11-openjdk-amd64».
Мы собираемся установить значение JAVA_HOME на java-1.11.0-openjdk-amd64 (рекомендуется).
$ export JAVA_HOME=/usr/lib/jvm/java—1.11.0—openjdk—amd64
Проверьте результат.
$ echo $JAVA_HOME
Обратите внимание, что эта переменная среды будет действовать только для текущего сеанса оболочки. После перезапуска вы должны установить значение еще раз вручную. Чтобы решить эту проблему, большинство оболочек поставляются с файлом конфигурации, содержащим коды и команды, которые оболочка должна выполнять при каждом запуске. В случае с bash это называется bashrc (для zsh это zshrc и т.д.).
Откройте файл в текстовом редакторе.
$ nano ~/.bashrc
Теперь добавьте следующую строку в конец файла. Это пометит переменную среды, доступную для всех сеансов оболочки, и двоичные файлы, доступные непосредственно из переменной PATH.
$ export JAVA_HOME=/usr/lib/jvm/java—1.11.0—openjdk—amd64
$ export PATH=$PATH:$JAVA_HOME/bin
Сохраните файл и закройте редактор. Чтобы изменения вступили в силу, перезагрузите файл bashrc.
$ source ~/.bashrc
Проверьте результат.
$ echo $JAVA_HOME
Глобальная установка JAVA_HOME
В предыдущем разделе демонстрируется настройка JAVA_HOME для одной учетной записи пользователя. Это хорошая практика, поскольку каждый пользователь может предпочесть разные конфигурации. Некоторые могут даже использовать совершенно другую версию Java или разновидность Java.
Bash поставляется с глобальным файлом bashrc, который должен загружаться каждый сеанс оболочки в системе, независимо от пользователя. Объявив там расположение JAVA_HOME, мы можем сделать его доступным для всех пользователей в системе. Обратите внимание, что это не рекомендуется и должно использоваться только в определенных ситуациях.
Откройте глобальный файл bashrc в текстовом редакторе. Обратите внимание, что для настройки этого файла требуются привилегии sudo.
$ sudo nano /etc/profile
Теперь обновите значения JAVA_HOME и PATH.
$ export JAVA_HOME=/usr/lib/jvm/java—1.11.0—openjdk—amd64
$ export PATH=$PATH:$JAVA_HOME/bin
Сохраните файл и закройте редактор. Перезагрузите файл в оболочку bash, чтобы изменения вступили в силу.
$ source /etc/profile
Проверьте результат.
$ echo $JAVA_HOME
Заключение
В этом руководстве мы рассмотрели различные концепции, такие как переменные среды, и продемонстрировали, как установить JAVA_HOME в качестве локальной или глобальной переменной среды. Многочисленные приложения для разработки, такие как NetBeans, Eclipse, Maven, ANT, Apache Tomcat, Android Studio и другие, зависят от JAVA_HOME для правильной работы.
Обратите внимание, что если переменная была установлена глобально, то местоположение должно быть доступно для всех пользователей в системе. В противном случае это вызовет множество проблем, что приведет к сильным головным болям.