Путь к классам - это список мест для загрузки классов.
Эти «местоположения» могут быть каталогами или файлами jar.
Для каталогов JVM будет следовать ожидаемому шаблону для загрузки класса. Если у меня есть каталог C: / myproject / classes в моем пути к классам, и я пытаюсь загрузить класс com.mycompany.Foo , он будет искать в каталоге классов каталог с именем com , затем в этом каталоге с именем mycompany и наконец, он будет искать файл с именем Foo.class .
Во втором случае для файлов jar он будет искать файл jar для этого класса. Файл jar на самом деле представляет собой просто заархивированный набор каталогов, подобных приведенному выше. Если вы разархивируете файл jar, вы получите кучу каталогов и файлов классов в соответствии с приведенным выше шаблоном.
Таким образом, JVM проходит путь к классам от начала до конца в поисках определения класса, когда пытается загрузить определение класса. Например, в пути к классам:
C: / myproject / classes; C: /myproject/lib/stuff.jar; C: /myproject/lib/otherstuff.jar
JVM сначала попытается заглянуть в классы каталога , затем в stuff.jar и, наконец, в otherstuff.jar .
Когда вы получаете ClassNotFoundException, это означает, что JVM прошла весь путь к классам и не нашла класс, на который вы пытались сослаться. Решением, как это часто бывает в мире Java, является проверка пути к классам.
Вы определяете путь к классам в командной строке, произнося java -cp, а затем свой путь к классам. В IDE, такой как Eclipse, у вас будет опция меню для указания пути к классам.