首页 > 解决方案 > 线程“主”java.lang.NoSuchMethodError 中的异常:sun.security.pkcs.PKCS7.generateSignedData

问题描述

我正在尝试签署一个简单的 jar,但是在我签署了这个错误之后,我的密钥库和 jarsigner 与我的项目位于同一个文件夹中。

任何帮助,将不胜感激!

Exception in thread "main" java.lang.NoSuchMethodError: sun.security.pkcs.PKCS7.generateSignedData([B[Ljava/security/cert/X509Certificate;[BLjava/lang/String;Ljava/net/URI;Ljava/lang/String;)[B
        at sun.security.tools.jarsigner.TimestampedSigner.generateSignedData(TimestampedSigner.java:135)
        at sun.security.tools.jarsigner.SignatureFile$Block.<init>(Main.java:2378)
        at sun.security.tools.jarsigner.SignatureFile.generateBlock(Main.java:2276)
        at sun.security.tools.jarsigner.Main.signJar(Main.java:1272)
        at sun.security.tools.jarsigner.Main.run(Main.java:240)
        at sun.security.tools.jarsigner.Main.main(Main.java:104)

C:\Users\Joey\Desktop\Lab10\Java Certificates\Java Certificates\bin>javac -version
javac 1.8.0_192

C:\Users\Joey\Desktop\Lab10\Java Certificates\Java Certificates\bin>java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) Client VM (build 25.192-b12, mixed mode, sharing)

标签: java

解决方案


问题是您正在尝试使用在您正在运行的库中不存在的方法。也许是方法本身或更可能是一些参数。

尝试使用其他版本的 Java 而不是 8 对您的 jar 进行签名,也许版本 5 或 7 可能适合您。


推荐阅读