Я пытаюсь понять, как организовать исходные файлы и файлы классов при работе с пакетами. Я нашел очень полезный учебник . Но у меня все еще есть некоторые вопросы.
Насколько я понял, хорошей практикой является наличие изоморфизма между именами пакетов и именами каталогов, в которых хранятся элементы пакета. Например, если у меня есть пакет с именем aaa.bbb.ccc
, который содержит класс ddd
, рекомендуется иметь файл класса с именем "ddd.class", расположенный в "$ CLASSPATH / aaa / bbb / ccc /". Я правильно понял?
Если это так, будет ли компилятор Java автоматически помещать файлы * .class в правильный каталог?
Я не смог получить такое поведение. Я установил для переменной $CLASSPATH
значение "/home/myname/java/classes"
. Я выполнил javac KeyEventDemo.java
, который содержит package events;
. Я ожидал, что javac создаст подкаталог events
в /home/myname/java/classes
и поместит KeyEventDemo.class
в этот подкаталог.
Этого не произошло. Я попытался помочь javac и создал подкаталог «events» сам. Я снова использовал javac
, но он не хочет помещать файлы классов в "/ home / myname / java / classes / events". Что я делаю не так?