Узнайте, как задать classpath в Java как переменную среды и передать ее как аргумент командной строки. Во время выполнения любого приложения Java CLASSPATH — это параметр, который сообщает JVM, где искать классы и пакеты.
- Значение classpath по умолчанию — «.»(точка), что означает, что поиск зависимостей выполняется только в текущем каталоге.
- Указание переменной среды CLASSPATH или ключа командной строки -cp переопределяет это значение.
- Порядок, в котором вы указываете несколько записей classpath, важен. Интерпретатор Java будет искать классы в каталогах в том порядке, в котором они указаны в переменной classpath.
Разделители путей к классам Java зависят от операционной системы.
Windows – ; [Точка с запятой]
Linux/Unix – : [Двоеточие]
1. Установка CLASSPATH в качестве переменной среды
После того как вы задали местоположение jar-файлов, которые всегда требуются во время выполнения приложения, вероятно, лучше всего добавить их в переменную среды компьютера «CLASSPATH».
Во время выполнения приложения загрузчик классов приложения всегда будет сканировать jar-файлы и классы по указанным в этой переменной путям.
Чтобы задать переменную среды CLASSPATH, найдите местоположение переменных среды пользователя на вашем компьютере и добавьте все пути, где хранятся файлы Jar. Используйте разделитель между двумя различными папками, файлами JAR или классами.
Окно переменных среды пользователя можно найти следующим образом:
- На рабочем столе щелкните правой кнопкой мыши значок «Компьютер».
- Выберите пункт «Свойства» в контекстном меню.
- Нажмите ссылку Дополнительные параметры системы.
- Нажмите Environment Variables. В разделе System Variables найдите переменную среды CLASSPATH и выберите ее. Нажмите Edit. Если переменная среды CLASSPATH не существует, нажмите New.
- Добавьте все папки, разделенные разделителем. Нажмите 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 из командной строки