как мы Предположим, что я создаю проект Java со следующими классами
com.bharani.ClassOne
com.bharani.ClassTwo
com.bharani.helper.HelperOne
com.bharani.helper.support.HelperTwo
с файлами, помещенными непосредственно под папку 'src'
и скомпилируйте их с помощью команды
$javac -d classes src/*. java (предполагается, что каталог классов существует)
Компилятор компилирует эти файлы и помещает файлы классов в соответствующие подкаталоги внутри каталога "classes", как этот
Поскольку спецификация указывает, что классы должны войти в соответствующую структуру каталогов. Хорошо.
Мой вопрос:. Когда я использую среду IDE, такую как Eclipse или NetBeans, они также создают структуру каталогов для каталога исходного кода (здесь также каталог src). Почему это? Это обязательно? Или это просто конвенция?
Спасибо.
В основном конвенция. Для источника имеет смысл отразить двоичную структуру.
Кроме того, если у вас есть два класса с одним и тем же именем (но в разных пакетах), как бы вы могли сохранить источник, если не в разных каталогах?
Сохранение источника только в одной папке отлично подходит для небольших проектов, но как только у вас есть более крупный проект (сотни классов), группировка источника в пакеты делает вещи более управляемыми.
Is it mandatory?
Нет
Or, is it just a convention?
Да, чтобы отразить структуру вашего пакета в исходном дереве.
Я всегда думал, что пакет Java немного сломан:
он кажется иератическим, но это не так.
это простой (уникальный) префикс для определения отдельных пространств имен.
Я думал, что это обязательно, но ваш опыт предполагает иное. В любом случае, это просто здравый смысл, не так ли? У больших проектов есть так много исходных файлов - почему жизнь осложняется тем, что у вас есть разные структуры для вашего источника и ваших файлов классов?