Java-путь к классам

Узнайте, как задать classpath в Java как переменную среды и передать ее как аргумент командной строки. Во время выполнения любого приложения Java CLASSPATH — это параметр, который сообщает JVM, где искать классы и пакеты.

  • Значение classpath по умолчанию — «.»(точка), что означает, что поиск зависимостей выполняется только в текущем каталоге.
  • Указание переменной среды CLASSPATH или ключа командной строки -cp переопределяет это значение.
  • Порядок, в котором вы указываете несколько записей classpath, важен. Интерпретатор Java будет искать классы в каталогах в том порядке, в котором они указаны в переменной classpath.

Разделители путей к классам Java зависят от операционной системы.

Windows – ; [Точка с запятой]
Linux/Unix – : [Двоеточие]

1. Установка CLASSPATH в качестве переменной среды

После того как вы задали местоположение jar-файлов, которые всегда требуются во время выполнения приложения, вероятно, лучше всего добавить их в переменную среды компьютера «CLASSPATH».

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

Чтобы задать переменную среды CLASSPATH, найдите местоположение переменных среды пользователя на вашем компьютере и добавьте все пути, где хранятся файлы Jar. Используйте разделитель между двумя различными папками, файлами JAR или классами.

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

  1. На рабочем столе щелкните правой кнопкой мыши значок «Компьютер».
  2. Выберите пункт «Свойства» в контекстном меню.
  3. Нажмите ссылку Дополнительные параметры системы.
  4. Нажмите Environment Variables. В разделе System Variables найдите переменную среды CLASSPATH и выберите ее. Нажмите Edit. Если переменная среды CLASSPATH не существует, нажмите New.
  5. Добавьте все папки, разделенные разделителем. Нажмите OK. Закройте все оставшиеся окна, нажав OK.
Свойства системы
Свойства системы

Если вы создаете CLASSPATH впервые, вам необходимо указать имя переменной в Windows 10. Используйте «.»(точку) для обозначения текущего каталога.

2. Установка CLASSPATH из командной строки

Используйте аргумент -classpath для установки classpath из командной строки/консоли. Используйте следующую команду для установки classpath для различных требований.

Допустим, у нас есть папка с именем dependency, в которой размещены JAR-файлы и другие классы.

2.1. Добавьте один JAR-файл в CLASSPATH

Приведенные ниже примеры синтаксиса добавят один jar-файл в classpath.

//WINDOWS$ set CLASSPATH=.;C:\dependency\framework.jar//Linux/Unix$ export CLASSPATH=.:/dependency/framework.jar

2.2. Добавить несколько jar-файлов в CLASSPATH

Ниже приведены примеры синтаксиса, которые добавят более одного файла jar в classpath. Чтобы сделать это, просто используйте разделитель для вашей операционной системы(либо ;, либо 🙂 в качестве разделителя между местоположениями, указанными для CLASSPATH.

Чтобы добавить все JAR-файлы, имеющиеся в каталоге, используйте подстановочный знак('*').

//WINDOWS$ set CLASSPATH=C:\dependency\framework.jar;C:\location\otherFramework.jar$ set CLASSPATH=C:\dependency\framework.jar;C:\location\*.jar//Linux/Unix$ export CLASSPATH=/dependency/framework.jar:/location/otherFramework.jar$ export CLASSPATH=/dependency/framework.jar:/location/*.jar

2.3. Добавить несколько классов в CLASSPATH

Во многих случаях вам может потребоваться добавить отдельные классы в classpath. Чтобы сделать это, просто добавьте папку, в которой находится classfile. Например, предположим, что в папке location есть пять файлов .class, которые вы хотите включить в classpath.

//WINDOWS$ set CLASSPATH=C:\dependency\*;C:\location//Linux/Unix$ export CLASSPATH=/dependency/*:/location

В качестве лучшей практики всегда организуйте все файлы JAR и классы приложений в одной корневой папке. Это может быть рабочее пространство для приложения.

Обратите внимание, что подкаталоги, содержащиеся в CLASSPATH, не будут загружены. Чтобы загрузить файлы, содержащиеся в подкаталогах, эти каталоги и/или файлы должны быть явно указаны в CLASSPATH.

2.4. Очистите CLASSPATH

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

set CLASSPATH=

3. Выполнение программ с опцией «-classpath» или «-cp»

Помимо установки classpath в переменной среды, вы можете передать дополнительный classpath в среду выполнения Java при запуске приложения с помощью параметра –classpath или –cp.

Используйте .(точку), чтобы включить текущий путь в classpath, где был сгенерирован файл .class.

$ javac –classpath C:\dependency\framework.jar MyApp.Java$ java –classpath .;C:\dependency\framework.jar MyApp

4. Распечатать текущее значение CLASSPATH

В любое время, когда вам потребуется проверить все записи пути в переменной CLASSPATH, вы можете выполнить проверку с помощью команды echo.

 //Окнаc:/> echo %ПУТЬ_К_КЛАССУ%//Linux/Unix$ echo $CLASSPATH

Если CLASSPATH не задан, вы получите сообщение об ошибке CLASSPATH: Undefined variable(Solaris или Linux) в консоли или просто %CLASSPATH% в командной строке Windows.

Читать далее:

Java – Как установить classpath в Windows 7, 8, 10
Java – Установка classpath из командной строки

Прокрутить вверх