这个程序完美地编译,但在运行时编译导入的类的问题

时间:2011-02-12 09:42:56

标签: java bouncycastle

我正在使用轻量级充气城堡包,这是我的代码

X9ECParameters x9=NISTNamedCurves.getByName("p-224");
ECDomainParameters params=new ECDomainParameters(x9.getCurve(),x9.getG(),x9.getN(),x9.getH());
ECKeyGenerationParameters gp=new ECKeyGeneratorParameters(params,SecureRandom.getInstance("SHA1PRNG"));
......

此程序成功编译但生成运行时错误..

java.lang.NOClassDefFoundError:java/security/SecureRandom

...

我该如何解决?

2 个答案:

答案 0 :(得分:2)

自Java 1.1以来,

SecureRandom已成为Java标准API的一部分,那么您在尝试运行代码的是什么? Google App Engine? Android的? Java ME?这些都是不支持完整Java标准API库的环境。

您必须调查您的平台是否提供了高质量随机性的不同来源。

答案 1 :(得分:0)

您可能应该使用BC包的J2ME版本。它包含它自己的java.security.SecureRandom版本以及J2ME中没有的其他所需类。它位于latest releases页面上,只需搜索lcrypto-j2me即可在页面上找到它。