将JAR与Bouncy Castle的库包装成单个JAR

时间:2017-06-03 13:17:30

标签: java netbeans jar bouncycastle

我创建了自己的包装类,我希望任何使用我编译的JAR文件的人都可以使用包装类。

这个jar文件还包含一个lib文件夹,它也有弹性城堡库,因为包装目的是让调用者更容易。所以我现在建立了名为MyLibrary.JAR的库。

现在,当我将此jar作为库包含在另一个项目中时,我看到以下错误

线程“AWT-EventQueue-0”中的异常java.lang.NoClassDefFoundError:org / bouncycastle / operator / OperatorCreationException

我检查了MyLibrary.Jar文件,发现里面有另一个Lib文件夹,所有的充气城堡库都在那里,为什么我仍然看到这个错误?我的库jar有这些结构文件夹

enter image description here

在lib文件夹中,我有以下库 enter image description here

我对使用手动zip和解压缩jar并不感兴趣我添加这些库我正在寻找我将在NetBeans上设置的东西,它将生成JAR文件以及依赖的充气城堡图书馆。

1 个答案:

答案 0 :(得分:0)

好的,我找到了,我需要添加如下所示的构建属性,以便拥有一个自动构建单个库

 <target name="-post-jar">
    <jar jarfile="dist/PKIFrapper.jar" >
    <zipfileset src="${dist.jar}" excludes="META-INF/*" />
    <zipfileset src="src/lib/bcmail-jdk15on-155.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/bcpg-jdk15on-155.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/bcpkix-jdk15on-155.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/bcprov-ext-jdk15on-155.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/bcprov-jdk15on-155.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/bctest-jdk15on-155.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/commons-codec-1.10-javadoc.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/commons-codec-1.10-sources.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/commons-codec-1.10.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/log4j-1.2-api-2.3-javadoc.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/log4j-1.2-api-2.3-sources.jar" excludes="META-INF/*" />
    <zipfileset src="src/lib/log4j-1.2-api-2.3.jar" excludes="META-INF/*" />

    <manifest>

        <attribute name="Main-Class" value="MyLibrary.*"/>
    </manifest>
    </jar>
</target>