Это действительно глупый вопрос, на который я не могу дать однозначного ответа.
Фон.
Я использую 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 для основного внешнего пакета. это соединит их всех вместе... пока что я просто хочу, чтобы это работало так, как оно работает.
Я могу предоставить полный источник или любую другую информацию по мере необходимости.
Заранее спасибо...
Дэвид