我使用NetBeans创建了一个Java UI,我需要包含外部jar并将其打包在一个jar中。
我收到以下错误:
错误:发生了JNI错误,请检查您的安装并再次尝试线程中的异常" main" java.lang.SecurityException:Manifest主要属性的签名文件摘要无效
我使用以下代码更改了<ScrollView>
<RelativeLayout>
</RelativeLayout>
</ScrollView>
<Button />
:
build.xml
但是,我得到了同样的结果。
我检查了罐子,我在META-INF:
<target name="-post-jar">
<jar jarfile="${dist.jar}" update="true">
<zipgroupfileset dir="\Users\feli\Documents\bouncy\" excludes="META-INF/*.SF,META-INF/*.DSA,META-INF/*.RSA"/>
<manifest>
<attribute name="Main-Class" value="herramientascriptograficas.AplicacionCriptografica"/>
</manifest>
</jar>
</target>
总之,META-INF feli$ ls BC1024KE.DSA BC1024KE_1.DSA BC2048KE.DSA BC2048KE_1.DSA MANIFEST.MF BC1024KE.SF BC1024KE_1.SF BC2048KE.SF BC2048KE_1.SF
并不排除文件。你能帮帮我吗?
Ps:我有一台Mac,我试图更改build.xml
,我得到的结果相同
答案 0 :(得分:2)
Bouncycastle罐子已签署,因为implements a cryptographic provider
如果您的提供商通过
Cipher
KeyAgreement
,KeyGenerator
,Mac
或SecretKeyFactory
类提供加密算法,则需要在JAR上签名文件,以便JCA可以在运行时验证代码。
您已将所有类重新打包到一个jar中,但尚未对其进行签名。您正在使用bouncycastle罐子的签名文件,但由于您更改了内容,因此它们现在无效
选项:
使用代码签名证书签署您的代码
使用您的应用程序部署bcprov-jdk15on-1.xx.jar