1. Обзор
Путь к классам — важная концепция в мире Java. Когда мы компилируем или запускаем приложение Java, JVM находит и загружает классы в пути к классам.
Мы можем определить элементы в пути к классам либо с помощью параметра -cp команд
java/
j avac
, либо с помощью переменной среды CLASSPATH .
Независимо от того, какой подход мы используем для установки пути к классам, нам нужно следовать синтаксису пути к классам.
В этом кратком руководстве мы обсудим синтаксис пути к классам и, в частности, разделитель пути к классам в операционных системах Windows и Linux.
2. Разделитель путей к классам
Синтаксис classpath на самом деле довольно прост: список путей, разделенных разделителями путей. Однако сам разделитель пути зависит от системы.
В то время как точка с запятой (;) используется в качестве разделителя в системах Microsoft Windows, двоеточие (:) используется
в Unix-подобных системах:
# On Windows system:
CLASSPATH="PATH1;PATH2;PATH3"
# On Linux system:
CLASSPATH="PATH1:PATH2:PATH3"
3. Вводящая в заблуждение справочная страница в Linux
Мы узнали, что разделитель пути к классам может отличаться в зависимости от операционной системы.
Однако, если мы внимательно посмотрим на справочную страницу Java для
Linux, то увидим, что разделителем пути к классам является точка с запятой ( ;
).
Например, справочная
страница команды java
из последней (версия 17) OpenJDK показывает:
`
–class
-path путьк классу ,
-classpathпуть к классу или
-cp`
путь к классу Список каталогов, разделенных точкой с запятой ( ;
), архивов JAR и ZIP для поиска файлов классов.
…
Кроме того, мы можем найти точный текст в руководстве по Oracle JDK .
Это связано с тем, что Java в настоящее время использует одно и то же руководство для разных систем. Соответствующая проблема с ошибкой была создана ранее в этом году.
Более того, в Java четко задокументировано, что разделитель пути системно зависит от поля pathSeparatorChar
класса File
. ``
4. Вывод
В этой короткой статье мы обсудили синтаксис пути к классам в разных операционных системах.
Кроме того, мы говорили об ошибке, связанной с разделителем путей на справочной странице Java в Linux.
Мы должны помнить, что разделитель пути зависит от системы. Двоеточие используется в Unix-подобных системах, а в системах Microsoft Windows используется точка с запятой.