Это действительно глупый вопрос, на который я не могу найти точный ответ.
Фон.
Я использую Eclipse (с одним из плагинов ANT на терминале XP).
Я только что начал играть с ANT, в директиве [jar] я устанавливаю местоположение моего готового файла JAR, и я получаю следующее при разархивировании файла
META-INF / MANIFEST.MF
MyMainFile.class
, что соответствует тому, что было найдено на веб-сайте оракула для внутренней структуры.
(здесь http://docs.oracle.com/javase/tutorial/deployment/jar/view.html)
Но когда я пытаюсь запустить свой файл, я получаю ошибку 'main class not found'?
Я видел несколько других постов, где люди «разархивировали» файл JAR и получили следующую структуру:
META-INF / MANIFEST.MF
dtvcontrol / DTVControlApp.class
(отсюда http://www.coderanch.com/t/528312/java/java/standalone-application)
Итак, я должен получить структуру, где мои файлы классов находятся в каталоге, который отражает имя пакета ... например,
META-INF / MANIFEST.MF
MyPackage / MyMainFile.class
и если да, то почему я получаю неправильную структуру, используя ANT, или почему существуют 2 разные «правильные» внутренние структуры? (как указать main-class и classpath для каждого / control, что я получаю)
Также, если вам интересно, в состояниях файла MANIFEST (сборка с использованием ANT)
[attribute name = "Main-Class" value = "MyPackage.MyMainFile" /]
Также структура каталогов разрабатываемого пакета выглядит следующим образом ...
/ JavaDev / MyTestPackage / src (содержит исходные файлы)
// JavaDev / MyTestPackage / bin (содержит файлы классов из eclipse или из задачи ANT JAVAC, правильно ли я назвал его? Должен ли я назвать его сборкой?)
Кроме того, когда я создаю флягу, я не называю ее «MyTestPackage.jar», а просто «test.jar», может ли это быть причиной проблемы? Я полагаю, не так, как если бы я хорошо понял, в этом суть определения [основного класса].
Вдобавок ко всему этому ...
MyTestPackage - это небольшая библиотека визуальных сообщений об ошибках, которую я использую в другом месте, и у меня есть второй файл, в котором есть основной класс для тестирования. Как таковой он указывает на различные библиотеки (нужно ли копировать все библиотеки SWT в указанный каталог?)
Я где-то читал, что если я загружаю библиотеки в свой основной класс (что я, очевидно, делаю, чтобы открыть окно), то попытка запустить программу завершится неудачно с «основным классом, не найденным», если я их использую, то же самое также Значение true для добавления любых членов «static final» (которые я использую для регистрации ошибок).
Задача «Статический финал» ...
Я попытался настроить путь к классам в ANT, и я получаю множество других ошибок для соединения с Log4J и моей «оберткой», которую я использую (чтобы сделать это плохим импортом), но библиотеки существуют там, где они должны как установлено в пути к классам).
Я чувствую, что почти у цели ... но не совсем ...
Я делаю это для небольших «библиотечных проектов», которые я создаю с намерением использовать MAVAN для основного внешнего пакета, который свяжет их все вместе ... сейчас, однако, я просто хочу, чтобы все было так как это работает.
Я могу предоставить полный источник или любую другую информацию по мере необходимости.
Заранее спасибо ...
David