Пакеты и файловая система

Скомпилированные файлы классов, как уже говорилось ранее, хранятся на диске в виде файлов с расширением class. Как влияет название пакета, в котором находится этот класс на местоположение класса на диске? Как уже говорилось ранее, иерархия пакетов сходна с иерархией каталогов на диске. Поэтому, названия пакетов в этой иерархии «отражаются» на диске в виде каталогов. Таким образом, если класс Hello.class находится в пакете com.miet.mp40.ivanov.lab1, то на диске он будет находиться в каталоге commietmp40ivanovlab1. Так же, имеет смысл в этом же каталоге хранить и исходный файл с расширением java.

Процесс запуска приложения, класс которого находится не в пакете по-умолчанию, немного различается от описанного выше, так как виртуальной Java машине необходимо указать полное название класса (вместе с иерархическим названием пакета, в котором он находится). Таким образом, чтобы выполнить данную программу, необходимо в командной строке выполнить следующую команду:

java com.miet.mp40.ivanov.lab1.Hello

Примечание: при выполнении данной команды текущим каталогом должен быть каталог, на уровень выше каталога com, то есть каталог, в котором находится каталог com.