Запуск с использованием java chapter10.PropertiesTest
. Команда Java ожидает полное имя класса Java, , а не путь к файлу байт-кода.
Команда Java находит классы для загрузки, просматривая путь к классам. Это список каталогов или JAR-файлов, которые нужно искать по порядку. Используемый алгоритм примерно таков:
Возьмите полное имя класса, замените "." символы с соответствующим символом-разделителем файлов (например, "/" или "\") и добавьте ".class" в конец. Результатом является путь.
Для каждой записи в classpath ищите путь к записи.
- Если поиск выполнен успешно, загрузите соответствующий файл.
- В противном случае перейдите к следующей записи пути к классам.
Если поиск не удался, бросьте ClassNotFoundException
.
Путь к классу может быть установлен с использованием явного параметра командной строки (-cp <path>
) или он может быть выбран из переменной окружения CLASSPATH
. Если ни один из этих методов не устанавливает путь к классу, по умолчанию путь к классу равен "." предполагается, где "." обозначает текущий каталог.
Как говорит @BalusC, рекомендуется использовать аргумент "-cp" или создать скрипт-обертку для запуска вашего приложения. Полагаться на $ CLASSPATH вашей оболочки немного непонятно, потому что вы никогда не знаете, когда он может быть переопределен или сброшен.
(Это упрощенное описание. Оно не охватывает «путь загрузки bootclass», пути к классам, устанавливаемые в загружаемых файлах JAR, загрузку классов по URL-адресам, обработку внутренних / анонимных классов и т. Д., И т. Д.)