首页 文章

java.lang.NoClassDefFoundError:无法初始化类sun.security.ec.SunEC(在最近的JRE更新后发生)

提问于
浏览
6

最新的JRE(1.7.0_25)更新后,我的应用程序将不会像以前那样从webstart启动 . 我没有部署任何较新的jar文件或更改了Web服务器上的JNLP文件,但我无法从webstart启动该应用程序 . 它可以从IDE运行,也可以从本地jar执行

我试图在控制面板的高级选项卡中禁用所有证书检查等,但错误仍然存在,我不确定这是否与最新JRE中的新安全设置有关,或者是否有其他更改(可能在网络上)服务器?)我不控制Web服务器我只有一个发布应用程序的页面,并且可以访问jar文件的驱动器位置,权限对于驱动器位置是正确的 . 我现在迷失了什么问题是!我试着辞去 jar 并验证签名

我感谢民间所能给予的任何帮助!完整错误如下:

java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC
                at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
                at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
                at java.lang.reflect.Constructor.newInstance(Unknown Source)
                at java.lang.Class.newInstance(Unknown Source)
                at sun.security.jca.ProviderConfig$2.run(Unknown Source)
                at sun.security.jca.ProviderConfig$2.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at sun.security.jca.ProviderConfig.doLoadProvider(Unknown Source)
                at sun.security.jca.ProviderConfig.getProvider(Unknown Source)
                at sun.security.jca.ProviderList.getProvider(Unknown Source)
                at sun.security.jca.ProviderList.getService(Unknown Source)
                at sun.security.jca.GetInstance.getInstance(Unknown Source)
                at java.security.Security.getImpl(Unknown Source)
                at java.security.AlgorithmParameters.getInstance(Unknown Source)
                at sun.security.x509.AlgorithmId.decodeParams(Unknown Source)
                at sun.security.x509.AlgorithmId.<init>(Unknown Source)
                at sun.security.x509.AlgorithmId.parse(Unknown Source)
                at sun.security.x509.X509Key.parse(Unknown Source)
                at sun.security.x509.CertificateX509Key.<init>(Unknown Source)
                at sun.security.x509.X509CertInfo.parse(Unknown Source)
                at sun.security.x509.X509CertInfo.<init>(Unknown Source)
                at sun.security.x509.X509CertImpl.parse(Unknown Source)
                at sun.security.x509.X509CertImpl.<init>(Unknown Source)
                at sun.security.provider.X509Factory.engineGenerateCertificate(Unknown Source)
                at java.security.cert.CertificateFactory.generateCertificate(Unknown Source)
                at sun.security.provider.JavaKeyStore.engineLoad(Unknown Source)
                at sun.security.provider.JavaKeyStore$JKS.engineLoad(Unknown Source)
                at java.security.KeyStore.load(Unknown Source)
                at com.sun.deploy.security.RootCertStore$1.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at com.sun.deploy.security.RootCertStore.loadCertStore(Unknown Source)
                at com.sun.deploy.security.RootCertStore.load(Unknown Source)
                at com.sun.deploy.security.RootCertStore.load(Unknown Source)
                at com.sun.deploy.security.ImmutableCertStore.load(Unknown Source)
                at com.sun.deploy.security.LazyRootStore.loadJREStore(Unknown Source)
                at com.sun.deploy.security.LazyRootStore.getTrustAnchors(Unknown Source)
                at com.sun.deploy.security.TrustDecider.getValidationState(Unknown Source)
                at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source)
                at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
                at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)
                at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
                at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
                at com.sun.javaws.Launcher.prepareResources(Unknown Source)
                at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
                at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
                at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
                at com.sun.javaws.Launcher.launch(Unknown Source)
                at com.sun.javaws.Main.launchApp(Unknown Source)
                at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
                at com.sun.javaws.Main.access$000(Unknown Source)
                at com.sun.javaws.Main$1.run(Unknown Source)
                at java.lang.Thread.run(Unknown Source)

1 回答

  • 1

    即使您在显示jar signing所示的jar后,您也无法在浏览器中运行您的applet . 完成签名后,您应该使用policytool.exe为活动jdk / jre的java.polcy中的类sun.security.ec.SunEC添加访问权限 . 确保以管理员身份运行policytool.exe,以便允许您修改java.policy文件 . 你必须为grant codeBase添加一个条目"file:${}/*" {permission java.security.AllPermission; };正如Matt C.所建议的那样

相关问题