Установка JAVA_HOME в Linux для всех пользователей: руководство
Быстрый ответ
Для задания переменной JAVA_HOME всем пользователям системы нужно внести изменения в файл /etc/environment:
sudo sh -c 'echo JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 >> /etc/environment'
Чтобы изменения вступили в силу, выполните следующую команду:
source /etc/environment
Либо задайте переменную с помощью файла java_home.sh, который находится в /etc/profile.d:
sudo sh -c 'echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" > /etc/profile.d/java_home.sh'
Проверить корректность установки можно с помощью команды:
echo $JAVA_HOME && echo $PATH

Как определить путь установки Java
Путь установки Java может отличаться. Вы могли установить Java на свой компьютер в другую директорию. Определить путь установки можно так:
find /usr/lib/jvm/ -name "java-*" -type d
Используйте найденный путь при установке JAVA_HOME, следуя инструкциям выше.
Как сделать обновление JAVA_HOME мгновенным
Хотите, чтобы изменения вступали в силу немедленно, не требуя перезагрузки сессии? Просто выполните целевую команду:
source /etc/profile
Для обновления JAVA_HOME в реальном времени добавьте в файл java_home.sh строку:
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed 's:/bin/javac::')
Это позволит обновить путь JAVA_HOME сразу после обновления Java.
Как работать с несколькими версиями Java
Если у вас установлено несколько версий Java, вы можете воспользоваться командой update-alternatives и настроить JAVA_HOME следующим образом:
update-alternatives --config java
Права доступа для исполняемого скрипта
Для исполнения скриптов из директории /etc/profile.d/ требуются соответствующие права:
sudo chmod +x /etc/profile.d/java_home.sh
В результате выполнения данных действий все пользователи получат доступ к среде Java.
Визуализация
Установка JAVA_HOME может быть описана как поиск сокровища:
1. Создайте "карту сокровищ": `sudo nano /etc/profile.d/jdk.sh`
2. Откройте "сундук с сокровищами": `export JAVA_HOME=/path/to/java`
3. Отправьте "сокровище искателям": `export PATH=$PATH:$JAVA_HOME/bin`
4. Приведите "карту" в порядок: `sudo chmod +x /etc/profile.d/jdk.sh`
5. Теперь каждый "искатель приключений" при старте системы будет иметь эту "карту"!
Таким образом, каждый пользователь будет осведомлён о JAVA_HOME при входе в систему.
Синхронизация через профайлы для единообразного пользовательского опыта
Переменная JAVA_HOME должна быть определена одинаково в файле .bashrc и /etc/profile для обеспечения комфортной работы:
echo "export JAVA_HOME=$JAVA_HOME" >> ~/.bashrc
echo "export PATH=$PATH:$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc
Таким образом, мы настраиваем среду для интерактивных оболочек и отдельных пользователей.
Корректное взаимодействие Java и Maven
Неправильно установленная переменная JAVA_HOME может привести к ошибкам при сборке с Maven. Чтобы этого избежать, убедитесь, что Maven использует верный путь JAVA_HOME:
mvn -version
Путь, указанный в JAVA_HOME, должен соответствовать пути, выводимому этой командой.
Полезные материалы
- Установка JDK и настройка JAVA_HOME – официальное руководство от Oracle по настройке переменной JAVA_HOMEдля Unix-систем.
- EnvironmentVariables – Community Help Wiki – подробная инструкция по настройке переменной окружения JAVA_HOMEна Ubuntu.
- Tutorial | DigitalOcean – руководство от DigitalOcean по установке JAVA_HOMEна Ubuntu.
- Java – ArchWiki — полное руководство по настройке JAVA_HOMEна Arch Linux на ArchWiki.
- IBM Developer — учебник от IBM по установке JAVA_HOMEна UNIX-системах.


