Как изучить java дома в Linux

Обновлено: 01.07.2024

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 была установлена ​​глобально, то установка, скорее всего, хранится в следующем месте.

Этот каталог содержит исполняемые файлы и библиотеки Java. Проверьте содержимое каталога.


В моем случае на 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 (рекомендуется).


Проверьте результат.


Обратите внимание, что эта переменная среды будет действовать только для текущего сеанса оболочки. После перезапуска вы должны установить значение еще раз вручную. Чтобы решить эту проблему, большинство оболочек поставляются с файлом конфигурации, содержащим коды и команды, которые оболочка должна выполнять при каждом запуске. В случае bash это называется bashrc (для zsh это zshrc и т. д.).

Откройте файл в текстовом редакторе.


Теперь добавьте следующую строку в конец файла. Это пометит переменную среды, доступную для всех сеансов оболочки, и двоичные файлы, доступные непосредственно из переменной PATH.

$ export JAVA_HOME =/usr/lib/jvm/java - 1.11.0 - openjdk - amd64

$ export PATH = $PATH : $JAVA_HOME / bin


Сохраните файл и закройте редактор. Чтобы изменения вступили в силу, перезагрузите файл bashrc.

Проверьте результат.

Глобальная настройка JAVA_HOME

В предыдущем разделе показана настройка JAVA_HOME для одной учетной записи пользователя. Это хорошая практика, потому что каждый пользователь может предпочесть разные конфигурации. Некоторые могут даже использовать совершенно другую версию Java или разновидность Java.

Bash поставляется с глобальным файлом bashrc, который должен загружаться при каждом сеансе оболочки в системе независимо от пользователя.Объявив там расположение JAVA_HOME, мы можем сделать его доступным для всех пользователей в системе. Обратите внимание, что это не рекомендуется и должно использоваться только в определенных ситуациях.

Откройте глобальный файл bashrc в текстовом редакторе. Обратите внимание, что для настройки этого файла требуются права sudo.


Теперь обновите значения JAVA_HOME и PATH.

$ export JAVA_HOME =/usr/lib/jvm/java - 1.11.0 - openjdk - amd64

$ export PATH = $PATH : $JAVA_HOME / bin


Сохраните файл и закройте редактор. Перезагрузите файл в оболочку bash, чтобы изменения вступили в силу.

Проверьте результат.


Заключительные мысли

В этом руководстве мы рассмотрели различные концепции, такие как переменные среды, и продемонстрировали, как установить JAVA_HOME в качестве локальной или глобальной переменной среды. Многочисленные приложения для разработки, такие как NetBeans, Eclipse, Maven, ANT, Apache Tomcat, Android Studio и другие, зависят от JAVA_HOME для правильной работы.

Обратите внимание, что если переменная была установлена ​​глобально, то местоположение должно быть доступно для всех пользователей в системе. В противном случае это вызовет множество проблем, что приведет к сильным головным болям. Для разрешения конфликтов прав доступа к файлам в Linux есть встроенный инструмент: chown. Узнайте больше о chown и о том, как его использовать.

Об авторе

Сидратул Мунтаха

Студент CSE. Я люблю Linux и играю с технологиями и гаджетами. Я использую как Ubuntu, так и Linux Mint.

Если вы запускаете Java-программы в Ubuntu с помощью Eclipse, Maven или Netbeans и т. д., вам нужно указать путь к JAVA_HOME. В противном случае ваша система сообщит, что «переменная среды java_home не установлена».

В этом руководстве для начинающих я покажу, как правильно установить переменную Java Home в Ubuntu. Эти шаги должны быть действительны и для большинства других дистрибутивов Linux.

Процесс состоит из следующих шагов:

  • Убедитесь, что установлен Java Development Kit (JDK).
  • Поиск правильного местоположения исполняемого файла JDK.
  • Установка переменной JAVA_HOME и сохранение изменений.

Шаг 1. Проверьте, установлен ли JDK

Самый простой способ проверить, установлен ли комплект Java Development Kit (JDK) в вашей системе Linux, — выполнить следующую команду:

Приведенная выше команда проверяет версию компилятора Java. Если он установлен, он покажет версию Java.

Если команда показывает ошибку, например, команда javac не найдена, вам необходимо установить JDK.

Если компилятор Java не установлен в вашей системе, установите Java Development Kit с помощью этой команды:

Это установит версию Java по умолчанию в вашу текущую версию Ubuntu. Если вам нужна какая-то другая конкретная версия Java, вам нужно будет указать ее при установке Java в Ubuntu.

Убедившись, что компилятор Java присутствует в вашей системе, самое время найти его местоположение.

Шаг 2. Получите расположение исполняемого файла JDK (компилятор Java)

Исполняемый файл обычно находится в каталоге /usr/lib/jvm. Я не оставлю тебя одного для игры в угадайку. Вместо этого давайте узнаем путь к исполняемому файлу Java.

Используйте команду which, чтобы получить расположение исполняемого файла компилятора Java:

Проблема в том, что указанное местоположение на самом деле является символической ссылкой. Вам придется повторить его пару раз:

И когда вы найдете путь, например /usr/lib/jvm/java-11-openjdk-amd64/bin/javac, вы удалите из него /bin/javac, чтобы получить что-то вроде /usr/lib/jvm/java -11-openjdk-amd64

Более простой способ — перейти по символической ссылке и напрямую перейти к реальному исполняемому файлу с помощью этой команды:

Команда readlink следует за символической ссылкой. Я использовал `вокруг какой Java. Это называется подстановкой команд и заменяет команду ее выводом. Затем Sed используется для замены /bin/javac ничем и, таким образом, его полного удаления.

В моем примере исполняемый файл расположен в /usr/lib/jvm/java-11-openjdk-amd64. Для вас это может быть иначе. Скопируйте правильный путь, который вы получили от приведенной выше команды, в своей системе. Вы знаете, вы можете скопировать и вставить в терминале Ubuntu.

Шаг 3. Установка переменной JAVA_HOME

Теперь, когда вы получили местоположение, используйте его для установки переменной среды JAVA_HOME:

Проверьте значение каталога JAVA_HOME:

Попробуйте запустить свою программу или проект в ТОМ ЖЕ ТЕРМИНАЛЕ и посмотрите, работает ли он.

Это еще не конец. Только что объявленная вами переменная JAVA_HOME является временной. Если вы закроете терминал или начнете новый сеанс, он снова будет пуст.

Чтобы установить переменную JAVA_HOME «навсегда», вы должны добавить ее в файл bashrc в вашем домашнем каталоге.

Вы можете использовать редактор Nano для редактирования файлов в терминале Linux. Если вы этого не хотите и используете простой метод копирования и вставки, используйте следующие команды:

Создайте резервную копию вашего файла bashrc (если вы что-то испортите, вы можете восстановить его):

Далее используйте команду echo, чтобы добавить команду экспорта, которую вы использовали в начале этого раздела. Измените приведенную ниже команду, чтобы использовать правильный путь, отображаемый вашей системой в.

Убедитесь, что он правильно добавлен в конец файла:

Приведенная выше команда tail покажет последние 3 строки указанного файла.

Вот весь вывод трех вышеуказанных команд.

Теперь, даже если вы выйдете из сеанса или перезапустите систему, для переменной JAVA_HOME все равно будет установлено указанное вами значение. Это то, чего вы хотите, верно?

Обратите внимание, что если вы измените версию Java по умолчанию в будущем, вам придется изменить значение JAVA_HOME и указать правильный путь к исполняемому файлу.

Я надеюсь, что этот учебник не только помог вам настроить Java Home, но и научил вас, как это делать.

Если вы по-прежнему сталкиваетесь с проблемами или у вас есть какие-либо вопросы или предложения, сообщите мне об этом в комментариях.

В зависимости от вашей операционной среды найти правильное значение и затем установить переменную среды JAVA_HOME может быть либо тривиально просто, либо невероятно сложно.

Мы начнем с более простых процедур и будем продвигаться по шкале сложности.

Содержание

JAVA_HOME уже установлен?

Иногда переменная среды JAVA_HOME уже установлена ​​по другим причинам. Для проверки выполните в командной строке Windows:

или в системах на базе Linux выполните:

Если ответом является путь к каталогу, все готово.

Поиск домашнего каталога Java

Переменная среды JAVA_HOME должна указывать на каталог установки в вашей системе, который содержит каталог bin/, в котором физически находится исполняемый файл Java, и каталог lib/, содержащий основные библиотеки и свойства Java. файлы. Для пользователей linux это почти наверняка не тот же каталог, который вы получите, если в командной строке выполните команду "what java", потому что это было бы слишком просто. Поэтому, если JAVA_HOME еще не установлен, ваша следующая задача — найти каталог, в который нужно его установить.

Вы используете Mac?

Если это так, то, возможно, системные программисты Apple оказали вам услугу и предоставили удобную маленькую команду под названием « java_home », которая возвращает нужное вам значение. Просто сделайте это из командной строки:

и использовать результат. Если у вас нет под рукой этой команды, вы можете создать ее самостоятельно, используя код в нижней части этой страницы в разделе Пример сценария Perl: java_home.

У вас Java версии 1.7 или новее?

Если ваша версия Java довольно свежая, есть полезная опция команды, в которой перечисляется целый набор настроек системных свойств, включая значение java.home , которое нам нужно. Чтобы увидеть свою версию Java (Windows или Linux), выполните следующие действия:

Если ответ 1.7 или выше, то эта команда выведет на ваш экран несколько десятков строк настроек свойств:

Прокрутите вывод, чтобы найти строку (около дюжины строк от начала листинга), содержащую " java.home ", и используйте часть значения этой строки.

Обратите внимание, что java выгружает этот список в stderr, а не в stdout, поэтому обычная передача через more не даст желаемого эффекта. Вам придется либо прокрутить, либо, в системах на базе Linux, перенаправить вывод ошибок в файл, а затем просмотреть его.

Являетесь ли вы дружелюбным программистом на Java или знаете ли вы его?

Необходимое значение — это значение свойства java.home, которое доступно внутри исполняемого файла Java, если вы знаете, что делаете. Java-программист должен быть в состоянии написать достаточно короткую программу для вывода этого значения по запросу, чтобы вам больше никогда не пришлось беспокоить его или ее. Я не программист Java, поэтому, если у вас есть подобная программа, которую вы хотели бы пожертвовать, свяжитесь с нами.

Кроме того, если у вас есть права, вы можете обновить установку Java до самой последней версии и использовать метод "Java версии 1.7 или более поздней версии", описанный выше.

Готовы ли вы пройти трудный путь?

В крайнем случае вам придется копаться в системных каталогах, пытаясь найти установочные файлы Java. Это может быть сложно, так как установка может быть для Java Developers Kit (ищите каталоги, начинающиеся с « jdk ») или среды выполнения Java (ищите каталоги, начинающиеся с « jre »), или на нее может ссылаться как на Java. Виртуальная машина (ищите каталоги, начинающиеся с " jvm ").

Функции поиска вам в помощь.На компьютерах с Windows сначала найдите каталог «Java/» в «Program Files», «Program Files (x86)» или эквивалентном системном каталоге. Если вы найдете его, загляните в него, пока не найдете подкаталог, содержащий bin/ и lib/. Если это не поможет, попробуйте найти сам исполняемый файл java и используйте имя каталога, содержащего каталог bin/, который, в свою очередь, содержит исполняемый файл java.

В системах на базе Linux, где существует гораздо больше возможностей для вариативности, попробуйте выполнить команду find в таких каталогах, как /usr/lib или /usr/share . (У вас должно быть разрешение на чтение любых каталогов, которые могут содержать библиотеки Java, на которые вы бы ссылались, поэтому вы можете игнорировать сообщения «Отказано в доступе».)

Если ничего не помогает, попробуйте угостить системного администратора приличной чашкой кофе и вежливо попросить.

Настройка JAVA_HOME

Переменную среды JAVA_HOME можно установить временно, чтобы после завершения сценария или пакетного файла или при закрытии командного окна она исчезала; или как часть вашей обычной среды. Синтаксис примерно одинаков в любом случае, но то, где вы устанавливаете значение, меняется.

В системах Windows

Чтобы временно установить значение из командной строки, используйте команду set:

где учитываются пробелы и заглавные буквы, а все, что находится внутри кавычек, должно быть заменено путем, который вы нашли с помощью одного из методов, описанных в предыдущем разделе. Двойные кавычки необходимы, если ваш путь содержит пробелы.

используя ранее найденный путь.

В системах на базе Linux

Вам необходимо знать, какую оболочку вы используете и как правильно установить переменные среды в этой оболочке. Двумя наиболее популярными оболочками являются оболочка Bourne и ее родственники, а также различные варианты оболочки C. Здесь мы покажем синтаксис для обоих из них. (Выполните команду « echo $SHELL » в командной строке, чтобы узнать, какую оболочку вы используете, если вы не знаете, и « man shell » в имени оболочки, чтобы узнать, какой это тип.)

В оболочках типа Bourne требуется два шага, чтобы установить переменную среды, которую могут видеть любые программы, которые вы затем запускаете. Например:

Оболочки типа C-shell могут сделать это за один шаг:

и есть альтернативный синтаксис, который работает так же хорошо:

Вы можете включить эти строки в скрипты-оболочки или установить JAVA_HOME в файле ресурсов оболочки, чтобы он автоматически становился частью среды входа в систему.

В качестве альтернативы, если вы работаете на Mac или дружелюбный программист написал вам подпрограмму, которая выполняет ту же функцию, что и программа java_home для Mac, вы можете заменить явный каталог, указанный в приведенных выше примерах кода, вызовом этой подпрограммы. . Например, в C-shell:

Тот же метод работает для оболочек типа Bourne.

Обратные галочки (символ под тильдой на большинстве клавиатур США) указывают на то, что команду внутри галочек следует запустить, а результат сохранить как значение JAVA_HOME . Таким образом, при обновлении установки Java вы автоматически получите правильное значение JAVA_HOME без необходимости редактировать файлы ресурсов или скриптов.

Пример Perl-скрипта: java_home

Вот быстрый и грязный сценарий Perl, который можно использовать для получения значения для JAVA_HOME из списка свойств, доступного с помощью параметра -XshowSettings в Oracle Java версии 1.7 и выше.

Переменная Java Home в Linux

В этой статье мы научимся устанавливать переменную JAVA_HOME в Linux. JAVA_HOME должен быть правильно установлен в вашей системе, чтобы вы могли успешно запускать Java-программы. В случае ошибки вы получите следующее сообщение об ошибке:

Чтобы избежать появления этой ошибки, вам необходимо указать путь к JAVA_HOME. Это пошаговое руководство о том, как вы можете это сделать. Процесс немного отличается для настройки для одного пользователя и для всех пользователей. В этом уроке мы рассмотрим оба варианта.

Оглавление

Установите переменную JAVA_HOME для одного пользователя

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

Echo Java Home

Если он содержит путь, вы увидите результат. Если переменная пуста, вы не получите вывод. Если вывод пуст, вы можете выполнить следующие шаги, чтобы установить его.

1. Установите Java в Linux

Первый шаг – убедиться, что в вашей системе установлена ​​Java. Чтобы проверить версию установленной Java, выполните следующую команду:

2. Откройте файл .bashrc

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

Чтобы открыть этот файл, используйте редактор vim.

Для редактирования в vim нажмите «i».

Перейдя в режим вставки, добавьте в файл следующую строку.

Убедитесь, что вы используете правильную версию Java в заявлении выше.

Java Vi

3. Источник ~/.bashrc

Запустите исходную команду, как показано ниже, чтобы убедиться, что изменения отражены.

4. Распечатать JAVA_HOME

Вы можете проверить правильность установки пути с помощью команды echo.

Echo Javahome

Установите переменную JAVA_HOME для всех пользователей

Этапы установки переменной JAVA_HOME для всех пользователей аналогичны установке ее для одного пользователя. Вам нужно будет войти в систему как пользователь root или выполнить команды с помощью команды sudo.

1. Откройте файл /etc/bashrc

Изменения в глобальных конфигурациях выполняются путем редактирования файла /etc/bashrc. Вы можете открыть файл /etc/bashrc с помощью команды:

Для редактирования в vim нажмите «i».

Добавьте следующую строку:

Убедитесь, что вы используете правильную версию Java.

2. Запустить исходный файл /etc/profile

Чтобы обеспечить немедленное отражение изменений, используйте исходную команду следующим образом:

Это позволит успешно обновить путь в переменной JAVA_HOME.

3. Распечатать JAVA_HOME

Чтобы проверить, успешно ли задан путь, используйте:

Заключение

В этом руководстве описаны действия по обновлению переменной JAVA_HOME в Linux. Вы можете прочитать это руководство, чтобы узнать, как установить Java в Linux. Продолжайте следить за LinuxForDevices для получения дополнительных руководств по Linux.

Читайте также: