周期性地,我们有一个问题,该问题阻止小应用程序运行,进程javaw.exe似乎被锁定,将其杀死几次会解锁小应用程序。在跟踪文件中,我发现了这一点(我们有jdk 1.6_35,该小程序由j2ee Web应用程序使用):

**server running at port: 50091
basic: unique id: JavaControlPanel
basic: server port at: 49187
basic: getSingleInstanceFilename: C:\Users\amoriconi\AppData\LocalLow\Sun\Java\Deployment\tmp\si\JavaControlPanel-x86_49187
basic: file should be removed: C:\Users\amoriconi\AppData\LocalLow\Sun\Java\Deployment\tmp\si\JavaControlPanel-x86_50091
basic: waiting connection
Exception in thread "main" java.lang.ExceptionInInitializerError
    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.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at sun.security.jca.ProviderConfig$3.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$ServiceList.tryGet(Unknown Source)
    at sun.security.jca.ProviderList$ServiceList.access$200(Unknown Source)
    at sun.security.jca.ProviderList$ServiceList$1.hasNext(Unknown Source)
    at sun.security.jca.GetInstance.getInstance(Unknown Source)
    at java.security.SecureRandom.getInstance(Unknown Source)
    at java.security.SecureRandom.getDefaultPRNG(Unknown Source)
    at java.security.SecureRandom.<init>(Unknown Source)
    at com.sun.deploy.services.WPlatformService.getSecureRandom(Unknown Source)
    at com.sun.deploy.si.SingleInstanceImpl.getSecureRandom(Unknown Source)
    at com.sun.deploy.si.SingleInstanceImpl.access$100(Unknown Source)
    at com.sun.deploy.si.SingleInstanceImpl$SingleInstanceServer$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.deploy.si.SingleInstanceImpl$SingleInstanceServer.createSingleInstanceFile(Unknown Source)
    at com.sun.deploy.si.SingleInstanceImpl$SingleInstanceServer.<init>(Unknown Source)
    at com.sun.deploy.si.SingleInstanceImpl.addSingleInstanceListener(Unknown Source)
    at com.sun.deploy.panel.ControlPanel.<init>(Unknown Source)
    at com.sun.deploy.panel.ControlPanel.main(Unknown Source)
Caused by: java.lang.RuntimeException: java.security.NoSuchAlgorithmException: class configured for SecureRandom(provider: SUN)cannot be found.
    at java.security.SecureRandom.getDefaultPRNG(Unknown Source)
    at java.security.SecureRandom.<init>(Unknown Source)
    at com.sun.crypto.provider.SunJCE.<clinit>(DashoA13*..)
    ... 28 more
Caused by: java.security.NoSuchAlgorithmException: class configured for SecureRandom(provider: SUN)cannot be found.
    at java.security.Provider$Service.getImplClass(Unknown Source)
    at java.security.Provider$Service.newInstance(Unknown Source)
    at sun.security.jca.GetInstance.getInstance(Unknown Source)
    at sun.security.jca.GetInstance.getInstance(Unknown Source)
    at java.security.SecureRandom.getInstance(Unknown Source)
    ... 31 more
Caused by: java.lang.ClassNotFoundException: com/sun/deploy/security/WSecureRandom
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    ... 36 more**


由于某种原因,此问题源自java的隐藏更新,安装了jdk 7u45,然后删除了一段时间解决问题的方法.....
我要疯了....

最佳答案

之所以发生这种情况,是因为在新版本的JRE(7u45-b18)中,对小应用程序进行了更多的安全检查。


  http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html#newft


最好在旧的JRE上或实施与安全性相关的更改。

07-21 15:05