Как добавить в переменную path путь к файлу java

Обновлено: 05.07.2024

Paths

Paths — это совсем простой класс с единственным статическим методом get() . Его создали исключительно для того, чтобы из переданной строки или URI получить объект типа Path . Другой функциональности у него нет. Вот пример его работы: Не самый сложный класс, да? :) Ну, раз уж мы получили объект типа Path , давай разбираться, что это за Path такой и зачем он нужен :)

getFileName() — возвращает имя файла из пути;

getParent() — возвращает «родительскую» директорию по отношению к текущему пути (то есть ту директорию, которая находится выше по дереву каталогов);

getRoot() — возвращает «корневую» директорию; то есть ту, которая находится на вершине дерева каталогов;

startsWith() , endsWith() — проверяют, начинается/заканчивается ли путь с переданного пути:

Вывод в консоль:

testFile.txt
C:\Users\Username\Desktop
C:\
true
false

Обрати внимание на то, как работает метод endsWith() . Он проверяет, заканчивается ли текущий путь на переданный путь. Именно на путь, а не на набор символов.

Сравни результаты этих двух вызовов:

Вывод в консоль:

false
true

В метод endsWith() нужно передавать именно полноценный путь, а не просто набор символов: в противном случае результатом всегда будет false, даже если текущий путь действительно заканчивается такой последовательностью символов (как в случае с “estFile.txt” в примере выше).

Кроме того, в Path есть группа методов, которая упрощает работу с абсолютными (полными) и относительными путями.

boolean isAbsolute() — возвращает true, если текущий путь является абсолютным:

Вывод в консоль:

Path normalize() — «нормализует» текущий путь, удаляя из него ненужные элементы. Ты, возможно, знаешь, что в популярных операционных системах при обозначении путей часто используются символы “.” (“текущая директория”) и “..” (родительская директория). Например: “./Pictures/dog.jpg” обозначает, что в той директории, в которой мы сейчас находимся, есть папка Pictures, а в ней — файл “dog.jpg”

Так вот. Если в твоей программе появился путь, использующий “.” или “..”, метод normalize() позволит удалить их и получить путь, в котором они не будут содержаться:

Вывод в консоль:

C:\Users\Java\examples
C:\Users\examples

Path relativize() — вычисляет относительный путь между текущим и переданным путем.

Вывод в консоль:

Username\Desktop\testFile.txt

Files

С помощью метода filter() отбираем только те строки из файла, которые начинаются с «Как».

Проходимся по всем отобранным строкам с помощью метода map() и приводим каждую из них к UPPER CASE.

Объединяем все получившиеся строки в List с помощью метода collect() .

preVisitDirectory() — логика, которую надо выполнять перед входом в папку;

visitFileFailed() — что делать, если вход в файл невозможен (нет доступа, или другие причины);

postVisitDirectory() — логика, которую надо выполнять после захода в папку.

Во многих моих тренингах так или иначе используется Java, либо как язык программирования для разработки автотестов, либо как виртуальная машина для запуска приложений, написанных на Java — инструментов тестирования, сред разработки, и даже клиент системы видеоконференций GotoWebinar требует наличия Java.

Поэтому я решил описать процедуру установки Java для операционной системы Windows и последующей настройки системы, потому что, к сожалению, недостаточно просто “запустить инсталлятор и всегда нажимать кнопку Next”.

1. Где взять Java?

2. Какую версию выбрать?

Разумеется, последнюю доступную (на момент написания инструкции это Java 8).

Выбирая из 32-битной и 64-битной версий, берите 64-битную, если ваша операционная система это позволяет, потому что у неё менее строгие ограничения по памяти, доступной исполняемым Java-приложениям.

3. Что устанавливать, JRE или JDK?

Java Runtime Environment, или JRE — это виртуальная машина, позволяющая запускать приложения, написанные на языке программирования Java.

Java Development Kit, или JDK — это набор инструментов, для разработки программ на языке программирования Java (компилятор, архиватор, генератор документации и прочие). JRE разумеется тоже входит в дистрибутив JDK.

Правило очень простое: если вы собираетесь что-нибудь писать на языке программирования Java, значит вам потребуется JDK. А если только запускать готовые программы — тогда достаточно JRE.

4. Установка Java

Вот тут, действительно, всё просто — нужно запустить инсталлятор и следовать указаниям визарда. Можно просто всё время нажимать кнопку Next.

5. Настройка переменных окружения

К сожалению, инсталлятор Java не выполняет настройку переменных окружения, поэтому придётся сделать это вручную после установки.

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

Во-вторых, надо в переменную PATH добавить путь к директории %JAVA_HOME%\bin . Эта переменная указывает операционной системе список директорий, в которых нужно искать исполняемые файлы, и чтобы можно было запускать Java из консоли, переменная PATH должна быть правильно настроена.

Для установки переменных окружения сначала нужно открыть свойства компьютера, либо использовав сочетание клавиш Win-Pause, либо через меню “Пуск”:


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


Если у вас уже есть переменная окружения JAVA_HOME — надо её отредактировать, если нет — создать новую. В качестве значения нужно указать путь к директории, куда установлена Java, то есть, например c:\Program Files\Java\jdk1.8.0_25\ , если вы установили JDK, либо c:\Program Files\Java\jre1.8.0_25\ , если вы установили только JRE.

После того, как вы установили значение переменной JAVA_HOME , необходимо отредактировать значение переменной PATH, добавив туда путь к директории, где находятся исполняемые файлы Java, то есть %JAVA_HOME%\bin


И сохранить всё это, закрыв все открытые диалоги в обратном порядке кнопками OK.

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

После того, как вы изменили переменные окружения, новые значения будут действительны только для новых запускаемых программ, уже запущенные программы не узнают о том, что переменные окружения поменялись. Поэтому если вы, например, пытались запустить Java из консоли и у вас не получилось из-за неправильных настроек переменной PATH , вам придётся перезапустить консоль после того, как вы поменяли значение переменной.

6. Удаление лишних файлов

Запустите консоль ( cmd ) и выполните в ней команду where java .

В результате вы должны увидеть путь к исполняемому файлу java.exe , который операционная система должна успешно обнаружить в том месте, куда вы установили Java. Если файл не нашёлся — значит неправильно настроена переменная PATH и нужно вернуться к предыдущему пункту.

Однако иногда бывает и наоборот, находятся «лишние» исполняемые файлы:


Происходит это из-за того, что инсталлятор Java вместо того, чтобы правильно настроить переменные окружения, пытается положить исполняемые файлы в директорию C:\Windows\system32

Это не очень хорошо — засоряется системная директория, может возникнуть рассогласование версий Java (в разных директориях разные версии). Поэтому надо удалить из каталога C:\Windows\system32 исполняемые файлы java.exe , javaw.exe и javaws.exe , если они там обнаружатся.

Вот и всё, теперь можно пользоваться Java. Только не забывайте о том, что после установки новой версии надо будет обновить переменную окружения JAVA_HOME !

Алексей Баранцев

Автор: Алексей Баранцев

Если вам понравилась эта статья, вы можете поделиться ею в социальных сетях (кнопочки ниже), а потом вернуться на главную страницу блога и почитать другие мои статьи.
Ну а если вы не согласны с чем-то или хотите что-нибудь дополнить – оставьте комментарий ниже, может быть это послужит поводом для написания новой интересной статьи.

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

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

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

Что устанавливать, JRE или JDK?

Существует две разновидности дистрибутива Java — для простых пользователей и для разработчиков:

  • Java Runtime Environment, или JRE — это виртуальная машина, позволяющая запускать приложения, написанные на языке программирования Java;
  • Java Development Kit, или JDK — это набор инструментов для разработки программ на языке программирования Java (компилятор, архиватор, генератор документации и прочие). JRE разумеется является частью дистрибутива JDK.

Правило очень простое:

  • если вы собираетесь что-нибудь писать на языке программирования Java, значит вам нужен JDK;
  • если вы собираетесь только запускать готовые программы — тогда достаточно JRE.

Какую версию выбрать?

Релизы Java выходят раз в полгода (не считая мелких обновлений). Но не стоит гнаться за новизной. Если вы установите Java последней версии, приготовьтесь к тому, что не все приложения будут хорошо работать с ней. Новые недавно добавленные возможности иногда приводят к проблемам совместимости.

Лучше всего посмотреть статистику и выбрать то, что использует большинство. Давайте посмотрим статистику за 2019 год:

В сентябре 2019 года вышла версия 13, в марте 2020 года выйдет версия 14, но при этом большинство продолжает использовать Java 8!

Я не собираюсь здесь обсуждать причины этого явления, но факт есть факт — это самая распространённая версия по состоянию на конец 2019 года. Поэтому если вы хотите максимальной стабильности и совместимости — в 2020 году берите Java 8.

Второе место по популярности занимает Java 11, это так называемый релиз с долгосрочной поддержкой (Long Term Support, LTS), ориентированный на корпоративных пользователей, для которых стабильность важнее новых фич.

Поддержка Java 8 официально прекращается в декабре 2020 года, к этому времени все корпоративные пользователи будут вынуждены перейти на Java 11. Но вы уже сейчас, не дожидаясь конца 2020 года, можете смело брать эту версию, она обеспечит комфортное соотношение достаточной новизны и не очень высокого риска. А если что-то не будет работать — можно установить рядом Java 8 для использования со старыми приложениями.

Выбирая из 32-битной и 64-битной версий, берите 64-битную, если ваша операционная система это позволяет.

Где взять?

Java это не только язык программирования, но и спецификация, как самого языка, так и среды исполнения программ, написанных на этом языке. Причем это открытая спецификация, поэтому может существовать, и существует, много разных её реализаций, в том числе проприетарных.

Большинство бесплатных реализаций (а может быть даже все) базируются на общем коде, который разрабатывается совместными усилиями вендоров в рамках проекта OpenJDK.

К этому общему коду каждый вендор дописывает свой инсталлятор (со своим логотипчиком), а также может добавлять какие-то дополнительные библиотеки (такие как, например, библиотека для создания графических пользовательких интерфейсов OpenJFX) или утилиты (например, средства мониторинга).

Лично я отдаю предпочтение сборке Azul Zulu, но вы можете выбрать какую-нибудь другую.

Как установить?

На примере сборки Azul Zulu.

В операционной системе Windows:

  1. выберите сборку и версию, как описано в предыдущих разделах;
  2. загрузите инсталлятор (файл с расширением .msi );
  3. запустите инсталлятор и следуйте инструкциям на экране.

В операционной системе Linux:

  1. выберите сборку и версию, как описано в предыдущих разделах;
  2. загрузите пакет (файл с расширением .deb или .rpm );
  3. в консоли выполните команду
    sudo apt install <путь к загруженному deb-файлу>
    либо
    sudo rpm -i <путь к загруженному rpm-файлу>

В операционной системе MacOS:

  1. выберите сборку и версию, как описано в предыдущих разделах;
  2. загрузите образ диска (файл с расширением .dmg );
  3. откройте загруженный образ диска;
  4. запустите находящийся внутри него инсталлятор и следуйте инструкциям на экране.

Как проверить правильность установки?

В операционной системе Windows нужно запустить консоль ( cmd ) и выполнить команду where java , которая должна показать правильный путь до исполняемого файла java.exe , а также после этого выполнить команду java -version для проверки того, что это именно та версия, которую вы устанавливали:


В операционной системе Linux и MacOS нужно запустить консоль и выполнить команду which java , которая должна показать правильный путь до исполняемого файла java (скорее всего это будет /usr/bin/java ), а также после этого выполнить команду java -version для проверки того, что это именно та версия, которую вы устанавливали:


Что ещё надо сделать?

Инсталлятор Java выполняет минимальную необходимую настройку окружения, в том числе он добавляет в переменную среды PATH путь к директории, которая содержит исполняемые файлы Java (в операционной системе Windows), либо создаёт в стандартной директории для исполняемых файлов символические ссылки на установленные исполняемые файлы Java (в других операционных системах).

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

Для этого надо научиться определять, куда установлена Java.

В операционной системе Windows путь к директории установки можно увидеть, выполнив команду where java в консоли. Например, если вы установили сборку Zulu JDK версии 8, эта команда вернёт значение C:\Program Files\Zulu\zulu-8\bin\java.exe , а в переменную JAVA_HOME нужно установить значение C:\Program Files\Zulu\zulu-8 .

/.profile добавить строчку export JAVA_HOME=$(readlink -f $(which java) | sed "s:/bin/java::") .

В операционной системе MacOS есть специальная команда /usr/libexec/java_home , которая возвращает нужный путь. Например, если вы установили сборку Zulu версии 8, эта команда вернёт значение /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home , именно это значение и нужно установить в переменную JAVA_HOME . Чтобы эта переменная среды устанавливалась автоматически при входе в систему, можно в файл

/.profile добавить строчку export JAVA_HOME=$(/usr/libexec/java_home) .

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

Алексей Баранцев

Автор: Алексей Баранцев

Если вам понравилась эта статья, вы можете поделиться ею в социальных сетях (кнопочки ниже), а потом вернуться на главную страницу блога и почитать другие мои статьи.
Ну а если вы не согласны с чем-то или хотите что-нибудь дополнить – оставьте комментарий ниже, может быть это послужит поводом для написания новой интересной статьи.

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

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

Мы будем начинать изучение работы с файлами сразу с класса Path . Path — это класс, который пришел на смену File . Работа с ним безопаснее и эффективнее.

Класс Path

Технически Path — это не класс, а интерфейс. Так сделано для того, чтобы можно было под каждую операционную (и файловую) систему писать свой класс-наследник Path .

У Windows свои стандарты написания пути файлов, у Linux — свои. А ведь в мире еще много операционных систем, и у каждой — свои стандарты.

Поэтому везде в методах для работы с файлами указан интерфейс Path , а реально работа идет с его классами-наследниками: WindowsPath , UnixPath , .

Создание объекта Path

Чтобы создать объект Path (на самом деле это будет объект класса-наследника — WindowsPath ), нужно воспользоваться командой вида:

Где имя — это имя переменной типа Path . путь — это путь к файлу (или директории) вместе с именем файла (или директории). А of — статический метод класса Path .

Метод of() используется для того, чтобы создать объекты типа WindowsPath если программа запускается под Windows, а если программа запускается под Linux — объекты UnixPath . Вы не можете создать объект типа Path с помощью кода вида new Path() .

Код Примечание
Путь к файлу
Путь к директории

Файл (или директория) не обязаны существовать, чтобы мог существовать валидный объект типа Path . Может вы только хотите создать файл. Объект типа Path — это как продвинутая версия типа String — он не привязан к конкретному файлу на диске: он просто хранит некий путь на диске и все.

2. Методы типа Path

У интерфейса Path есть довольно много интересных методов. Самые интересные представлены в таблице ниже.

Метод Описание
Возвращает родительскую директорию
Возвращает имя файла без директории
Возвращает корневую директорию из пути
Проверяет, что текущий путь — абсолютный
Преобразует путь в абсолютный
Убирает шаблоны в имени директории.
Строит новый абсолютный путь из абсолютного и относительного.
Получает относительный путь из двух абсолютных путей.
Проверяет, что текущий путь начинается с пути
Проверяет, что текущий путь заканчивается на путь
Дробит путь на части с помощью разделителя / .
Возвращает количество частей.
Дробит путь на части с помощью разделителя / .
Возвращает часть по ее номеру.
Дробит путь на части с помощью разделителя / .
Возвращает часть пути, заданную интервалом.
Преобразует объект Path в устаревший объект File
Преобразует объект Path в объект типа URI

Ниже идет краткое описание существующих методов.

3. Разделение пути на части

Метод getParent() возвращает путь, который указывает на родительскую директорию для текущего пути. Независимо от того, был этот путь директорией или файлом:

Метод getFileName() возвращает одно имя файла (или директории) — то, что идет после последнего разделителя:

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