Я пытаюсь выяснить, как организовать файлы источника и класса, работающие с пакетами. Я нашел очень полезный tutorial. Но у меня все еще есть некоторые вопросы.
Насколько я понял, хорошей практикой является изоморфизм между именами пакетов и именем каталогов, в которых хранятся элементы пакета. Например, если у меня есть пакет с именем 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». Что я делаю не так?
И уточнить $ CLASSPATH: он расскажет JVM, где искать классы во время выполнения, а не сообщать javac, где создавать классы, этот ответ и ваш опыт показывают. –