从Netbeans 8.0.2和Java 8创建包含外部jar文件的可执行jar

时间:2020-03-02 08:05:08

标签: java-8 netbeans-8

我想创建包含我的外部jar文件的可执行jar文件, 我正在使用Netbeans 8.0.2和Java 8 我尝试使用Internet和stackoverflow提供的解决方案更新build.xml, 但是外部jar文件没有包含在我的单个可执行jar文件中。 我也尝试过

<target name="package-for-store" depends="jar">
    <property name="store.jar.name" value="myProject"/>
    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
    <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>
    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>
    <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>

我也尝试过

How to build a fat jar using Netbeans

它创建了一个jar文件,但不包含我的外部依赖关系。 谁能帮助我如何使用Netbeans 8.0.2java8

将外部jar包含到单个可执行jar中

1 个答案:

答案 0 :(得分:0)

我终于找到了答案, 我在build.xml中使用了以下配置

<target name="package-for-store" depends="jar">
    <property name="store.jar.name" value="DocumentProtector"/>
    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>
    <echo message="Packaging ${application.title} into a single JAR at ${store.jar} mainclass ${main.class}"/>
    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>
    <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>
clean+build之后的

右键单击build.xml并转到Other target,然后单击package-for-store 但是这样做之后我错了主班 所以经过很少的研究,我找到了改变主班的解决方案 转到project folder -> nbproject and open project.properties文件 并将main.class更改为带有包名称的邮件类文件名 像这样main.class=com.test.package.MainClassclean+build并再次 右键单击build.xml并转到Other target,然后单击package-for-store

相关问题