9

我正在使用 AdvancedInstaller 9.8 将我的 javacode (webapplication) 构建到安装程序。通常我的应用程序运行良好。使用 Advanced Installer 9.8 创建我的安装程序后,安装程序大小约为 55 MB。但是高级安装程序中有一个选项可以压缩为安装而制作的所有 jar。如果我压缩 jar,安装程序大小约为 16 MB。但是当我使用 Advanced Installer 9.8 进行压缩时,在执行 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", "BC") 行时出现异常(如标题中所述);在我的代码中。KeyPairGenerator 再次来自包 java.security.*;

谁能告诉我,这个问题的原因可能是什么。我知道使用 AdvancedInstaller 压缩时,Advanced Installer 压缩可能会出现问题。但我的问题是,在 java 方面通常会出现什么问题来解决这个问题。(我的意思是可能是什么原因,比如任何文件都可能被损坏(或)等等任何其他原因)这样我就可以从那里开始工作了。

4

5 回答 5

34

在您的代码之前添加这一行:

Security.addProvider(new BouncyCastleProvider());
于 2014-06-19T21:11:28.190 回答
4

您可以通过使用以下代码编辑 java.security 并创建静态块来添加安全提供程序:

static {
    Security.addProvider(new BouncyCastleProvider());
}

如果您使用的是 maven 项目,则必须在项目的 pom.xml 文件中添加 BouncyCastleProvider 的依赖项,如下所示。

<dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>1.47</version>
</dependency>

如果您使用的是普通的 java 项目,那么您可以从下面给出的链接添加下载 bcprov-jdk15on-147.jar 并编辑您的类路径。

http://www.java2s.com/Code/Jar/b/Downloadbcprovextjdk15on147jar.htm

于 2016-08-01T07:40:35.717 回答
3

除了检查 jre 配置,您还需要检查

1.检查配置中是否设置了java home

2.查看应用使用的java环境

3.检查 \jre\lib\security\java.security 是否有 bouncycastle 提供程序条目。即security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider

4.同时检查 bouncy castle jar 是否已添加到 \jre\lib\ext\ bcprov-jdk15on-147.jar(适用于 java 1.5 和 1.6 的最新版本)

于 2013-10-25T08:55:20.843 回答
3

它通过替换最新的 bcprov-jdk15-.jar 得到修复。我以前的版本是 bcprov-jdk15-135.jar,它产生了上面提到的问题。

于 2013-01-28T14:05:19.713 回答
1

通过导入以下内容可以解决该问题:

import org.bouncycastle.jce.provider.BouncyCastleProvider;

然后将以下代码放入您的类方法中:

Security.addProvider(new BouncyCastleProvider());
于 2017-05-24T07:09:45.647 回答