Создание библиотеки JAR с другими библиотеками

1

Я создаю jar через eclipse, но не runnable jar, это просто библиотека. После импорта я создаю новый проект и добавляю этот файл jar. Но при запуске приложения оно вызывает исключение из-за того, что вы не находите библиотеки, которые находятся внутри моей банки. Но эти библиотеки включены в созданную банку. Где моя ошибка? Как я могу это сделать?

  • 0
    Вы добавили эту банку, чтобы правильно построить путь?
  • 1
    «Но эти библиотеки включены в созданную банку». Что это на самом деле означает? Вы создали толстую банку?
Показать ещё 7 комментариев
Теги:
exception
jar

2 ответа

0
Лучший ответ

Я нашел решение. Я пишу скрипт ant для создания jar, и я решил свою проблему.

<target name="dist" depends="build-jar">


    <property name="store.jar.name" value="MYJARNAME"/>

    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>

    <echo message="Packaging project into a single JAR at ${store.jar}"/>

    <mkdir dir="dist"/>
    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>
    <mkdir dir="dist/lib"/>
    <copy todir="dist/lib/" overwrite="false" granularity="9223372036854">
        <fileset dir="lib/"/>
    </copy>
    <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
        <zipgroupfileset dir="dist" includes="*.jar"/>
        <zipgroupfileset dir="dist/lib" includes="*.jar"/>

        <manifest>
            <attribute name="Main-Class" value="${main.class}"/>
        </manifest>
    </jar>

    <zip destfile="${store.jar}">
        <zipfileset src="${store.dir}/temp_final.jar"
        excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
    </zip>

    <delete file="${store.dir}/temp_final.jar"/>

</target>
1

По умолчанию вы не можете включать JAR файлы зависимостей в свой JAR файл, вам нужен плагин, как указано в Classpath, включая JAR в JAR (предложенный Артуром Малиновским). Если, однако, вы хотите создать JAR, который просто работает с вашими другими зависимостями, вы можете легко сделать это через Eclipse, щелкнув правой кнопкой мыши по проекту, перейдя в свойства, путь сборки Java, библиотеки, а затем вы можете добавить JAR и т.д. с помощью кнопок в правой части меню (по Кеплеру).

Надеюсь, это поможет.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню