java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)

java.security.AccessControlException:拒绝访问(java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11),java,eclipse,applet,runtime-error,Java,Eclipse,Applet,Runtime Error,我正试图在服务器网页中启动java小程序(java 6版),但运行时出现下一个错误: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11) at java.security.AccessControlContext.checkPermission(Unknown Source) at

我正试图在服务器网页中启动java小程序(java 6版),但运行时出现下一个错误:

    java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
    at sun.plugin2.applet.Applet2SecurityManager.checkPackageAccess(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at es.inteco.applet.AppletFirmaDNIe.init(AppletFirmaDNIe.java:168)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Excepción: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)
Ignored exception: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.security.pkcs11)
在eclipse中,这个小程序工作得很好,但是当我在服务器上尝试它时,它就不工作了。 我正在使用未签名的小程序(.jar)。难道这就是问题吗

在我的java.policy文件中,我添加了这些行,但仍然不起作用

grant {
permission java.security.AllPermission;
permission java.security.AccessControlException;
permission java.lang.RuntimePermission;
permission java.lang.RuntimePermission "accessClassInPackage.sun.security.pkcs11";
};
与以下原始.policy文件相同的错误:

grant {
permission java.security.AllPermission;
};
有人知道这个问题和解决办法吗


提前感谢

您需要对小程序进行签名,最新的java安全基线将阻止使用不受信任的证书颁发机构签名的任何小程序


如果您选择对小程序进行自签名,您可能需要降低java安全设置以使小程序能够执行。

Oracle最近的java发行版(大约从去年夏天开始)已禁止访问任何以“sun”开头的包中的任何内容

这可以通过使用policytool添加以下内容来克服:

权限java.lang.RuntimePermission accessClassInPackage.sun


添加到本地java.policy文件。

将其添加到
java.policy文件中,或使用:

grant {
  permission java.lang.RuntimePermission accessClassInPackage.sun "com.acme.yourpackagename";
};