какова правильная внутренняя структура файла JAR

Это действительно глупый вопрос, на который я не могу дать однозначного ответа.

Фон.

Я использую Eclipse (с одним из подключаемых модулей ANT на терминале XP).

Я только начал играть с ANT, в директиве [jar] я устанавливаю расположение моего готового файла JAR, и я получаю следующее, когда я «разархивирую» файл

META-INF/MANIFEST.MF MyMainFile.class

, который согласуется с внутренней структурой, найденной на веб-сайте Oracle. (здесь http://docs.oracle.com/javase/tutorial/deployment/jar/view.html)

Но когда я пытаюсь запустить свой файл, я получаю «основной класс не найден» ошибка ?

Я видел несколько других сообщений, в которых люди «разархивировали» файл JAR и получили следующую структуру...

META-INF/MANIFEST.MF dtvcontrol/DTVControlApp.class

(отсюда http://www.coderanch.com/t/528312/java/java/standalone-application)

Итак, я должен получить структуру, в которой мой файлы классов находятся в каталоге, который отражает имя пакета... например,

META-INF/MANIFEST.MF Мой пакет/мой основной файл.класс

, и если да, то почему я получаю неправильную структуру, используя ANT, или почему существуют две разные «правильные» внутренние структуры? (как указать основной класс и путь к классам для каждого / контроля того, что я получаю)

Также, если вам интересно, в состояниях файла МАНИФЕСТА (сборка с использованием ANT) [attribute name="Main-Class" value="MyPackage.MyMainFile"/]

Также структура каталогов разрабатываемого пакета выглядит следующим образом...

/JavaDev/MyTestPackage/src (содержит исходные файлы ) //JavaDev/MyTestPackage/bin (содержит файлы классов из eclipse или из задачи ANT JAVAC, я неправильно назвал его? Должен ли я называть его build? )

В дополнение к этому, когда я создаю банку, я не называя его «MyTestPackage.jar», а просто «test.jar», может ли это вызывать проблему? Я предполагаю, что не так, как если бы я хорошо понял, что это то, что касается определения [основного класса].

В дополнение ко всему этому...

'MyTestPackage' на самом деле представляет собой небольшую визуальную библиотеку сообщений об ошибках, которую я использую в другом месте, и у меня есть второй файл с основным классом для тестирования. Таким образом, он указывает на различные библиотеки (нужно ли копировать все библиотеки SWT в указанный каталог?)

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

Проблема "Статический финал"...Я попытался настроить путь к классам в ANT, и я получаю множество других ошибок для подключения к Log4J и моей «оболочке», которую я использую (что связано с плохим импортом), но библиотеки существуют там, где они должны быть установлены в пути к классам).

Я чувствую, что почти достиг цели.... но не совсем...

Я делаю это для небольших "библиотечных проектов", которые я создаю с намерением использовать MAVAN для основного внешнего пакета. это соединит их всех вместе... пока что я просто хочу, чтобы это работало так, как оно работает.

Я могу предоставить полный источник или любую другую информацию по мере необходимости.

Заранее спасибо...

Дэвид

6
задан DaveM 2 April 2012 в 10:38
поделиться