При использовании пакетов вы должны вызывать свой компилятор из каталога в корне иерархии пакетов (в вашем случае ~
).
Итак, перейдите на один каталог вверх и вызовите javac следующим образом:
javac TestPackage/Derived_class.java
Тогда компиляция должна работать.Для выполнения вы должны использовать:
java TestPackage.Derived_class
(но у вашего класса еще нет основного метода).
Редактировать: Почему это необходимо?Когда javac
ищет классы, на которые ссылаются ваши классы, он ищет их в соответствии с их пакетом.Ваш Derived_class ссылается на класс TestPackage.TestClass
, и он будет найден в TestPackage/TestClass.java
(или .class
) (относительно пути к классам, который здесь состоит из вашего рабочего каталога).Такой директории не существует, когда вы уже находитесь внутри директории TestPackage.
Другой способ вызвать ее здесь - использовать
javac -cp .. Derived_class.java
, поскольку тогда javac будет искать связанные классы изродительский каталог.Затем вы должны также установить параметр '-d', чтобы поместить сгенерированные файлы классов в правильную структуру.Позвоните по номеру javac -help
, чтобы получить сводную информацию о параметрах, или обратитесь к документации JDK, чтобы получить более подробное описание всех параметров.
Когда вы компилируете только один файл, это не имеет значения, поскольку файлКомпиляция дается в командной строке, и javac не нужно искать больше файлов.