2010-09-08 3 views
0

Я не уверен, что я использую правильную терминологию java здесь, но вот что я хочу сделать. У меня в основном есть код, работающий в одном каталоге. Я хочу их реорганизовать. Некоторые предыдущие темы предполагали, что ответы на пакет и импорт могут быть ответом. Были некоторые недостающие детали, поэтому я не совсем понял, как работает этот процесс.Процесс создания пакета?

Вот мой каталог hiearchy.

/Mydir/MyProject
/Mydir/MyProject/общие
/MYDIR/MyProject/feature1

feature1 требует материал общего.

1) Соберите ли я код вместе и поместите его в файл jar или есть какой-то другой механизм для сборки пакета?
2) Есть ли что-нибудь, что мне нужно добавить в настоящий * .java файл, чтобы указать, что это пакет?
3) Где мне нужно разместить этот файл jar?
4) В файлах feature1, как мне импортировать общий код? Например,

импорт myDir.myProject.common.JARFILE; // будет ли это работать или нужно указать
// этот фактический компонент

ответ

0

Вы можете создать файл jar всех необходимых файлов, а затем добавить их в путь к классам.

Или вы можете использовать

import myDir.myProject.common.*; 
1

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

 
package myDir.myProject.common; 

При импорте у вас должна быть строка для каждого класса, который вы хотите импортировать. Как это:

 
import myDir.myProject.common.Class1; 
import myDir.myProject.common.Class2; 

Вы также можете использовать .* указать все классы в пакете, но это лучше перечислить конкретные классы, если вы можете.

При компиляции вы должны скомпилировать корневой каталог в верхней части всех пакетов. Таким образом, корневой каталог будет иметь доступ ко всем файлам исходного кода. Например, если вы ищете myDir.myProject.common.Class1, компилятор, естественно, будет выглядеть в myDir/myProject/common/ для Class1. Обратите внимание, что это относительный каталог. В противном случае, если пакет уже был взломан в банке, он найдет его там. Если у вас есть пакет, который вы планируете использовать в нескольких проектах, сотрясайте его и ссылаясь на каталог таким образом, он может помочь с переносимостью и контролем версий.

Другое предложение, которое у меня есть, заключается в том, что вы используете IDE, например Eclipse, который будет обрабатывать многие из этих вещей для вас. Когда я настраиваю проект в Eclipse, я добавляю исходный каталог, создаю пакеты, а затем создаю классы в этих пакетах. Он обрабатывает все инструкции пакета и импорта в коде для меня.

+0

Конвенция не содержит заглавных букв в именах пакетов ... поэтому он должен переименовать myDir в mydir, а myProject для myproject – bwawok

+0

ОК, это должно заставить меня двигаться. Спасибо. – tadpole

Смежные вопросы