Почему исходные файлы Java входят в структуру каталогов? - PullRequest
1 голос
/ 09 июня 2010

, поскольку мы предполагаем, что я создаю проект Java со следующими классами

  1. com.bharani.ClassOne
  2. com.bharani.ClassTwo
  3. com.bharani.helper.HelperOne
  4. com.bharani.helper.support.HelperTwo

с файлами, помещенными непосредственно в папку 'src'

  1. src / ClassOne.java
  2. src / ClassTwo.java
  3. src / HelperOne.java
  4. src / HelperTwo.java

и скомпилируйте их с помощью команды

$ javac-d classessrc / *. java (при условии, что каталог классов существует)

Компилятор компилирует эти файлы и помещает файлы классов в соответствующие подкаталоги внутри каталога 'classes', например

  1. classes / com / bharani / ClassOne.class
  2. classes / com / bharani / ClassTwo.class
  3. classes / com / bharani / helper / HelperOne.class
  4. classes / com / bharani / helper / support / HelperTwo.class

Поскольку спецификация требует, чтобы классы входили в соответствующую структуру каталогов.Отлично.

У меня такой вопрос : когда я использую IDE, например Eclipse или NetBeans , они создают структуру каталогов для источникакаталог кодов (каталог 'src' здесь).Это почему?Это обязательно?Или это просто соглашение?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 09 июня 2010

В основном конвенция.Для источника имеет смысл отразить бинарную структуру.

Кроме того, если у вас есть два класса с одинаковым именем (но в разных пакетах), как бы вы хранили исходный код, если бы он не находился в разных каталогах?

Хранение исходного кода только в одной папкеотлично подходит для небольших проектов, но если у вас есть более крупный проект (сотни классов), группировка исходного кода в пакеты делает вещи намного более управляемыми.

4 голосов
/ 09 июня 2010
Is it mandatory? 
нет

Нет

Or, is it just a convention?

Да, чтобы отразить структуру вашего пакета в дереве исходных текстов.

Я всегда думал, что пакет Java немного сломан:

это кажется иерархическим, но это не так.

это простой (уникальный) префикс для определения отдельных простых пространств имен.

1 голос
/ 09 июня 2010

Я думал, что это обязательно, но ваш опыт подсказывает обратное.В любом случае, это просто здравый смысл, верно?В больших проектах так много исходных файлов - зачем усложнять жизнь, имея разные структуры для вашего источника и ваших файлов классов?

...