Ant сборка jar из нескольких пакетов - PullRequest
1 голос
/ 23 сентября 2010

Я пытаюсь создать JAR на основе двух отдельных пакетов Java.Я могу скомпилировать и запустить в Eclipse, но не могу заставить код функционировать из командной строки.У меня Ant и JDK правильно настроены для использования, так как у меня есть почти рабочий скрипт сборки Ant.Единственная проблема заключается в том, что полученный JAR-файл выдает ClassNotFoundException , когда я пытаюсь его выполнить.

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

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

<manifest file="MANIFEST.MF">
    <attribute name="Built-By" value="XBigTK13X"/>
    <attribute name="Main-Class" value="com.main.MainClass"/>
    <attribute name="Class-Path" value="./com/main/ ./secondpackage/shapes/" />
</manifest>
<jar destfile="App.jar"
    basedir="./bin"
    includes="**/*.class"
    manifest="MANIFEST.MF"
    excludes="App.jar"
/>

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

JAR был прав все время.Эта ошибка возникла из-за того, что я пытался запустить JAR с помощью следующей команды после создания JAR:

java MainClass

Теперь я понимаю, что мне нужно явно указать целевой JAR с помощью следующей команды:

java -jar MainClass.jar
0 голосов
/ 23 сентября 2010

Просмотрите полученный JAR-файл, чтобы убедиться, что два пакета имеют правильный путь от корня. Ваш оператор Class-Path в манифесте может не соответствовать структуре папок, содержащих файлы .class.

Проверьте это, открыв JAR с утилитой zip.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...