关于java.security.AccessControlException: access denied 的解决方法

时间:2022-08-19 20:28:14
方老师:
  今天调试了您的JDBCUpdateApplet程序.您说在直接用ie打开RunApplet.html文件.会在java控制台报 java.security.AccessControlException: access denied
(java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
错误.我这里也出现了这个错误提示! 根据网上搜索的有关问题的分析.这是因为applet在没有被允许的情况下去获取系统资源. 同时,错误提示需要一个RuntimePermission,它将使applet去获得sun.jdbc.odbc 包.所以 可以在您系统的java运行时包修改一个关于安全的一文件. 具体做法是:找到您的ie浏览器使用的jre包,我家的是:D:/Program Files/Java/jre1.6.0/lib/security,在这个包下面有个java.policy文件,打开编辑它: 在grant里增加2个语句: permission java.lang.RuntimePermission "accessClassInPackage.sun.jdbc.odbc"; 
permission java.util.PropertyPermission "file.encoding", "read"; 
再关闭ie,重新运行就可以解决这个问题.我在家里的机子中,增加以后就没有在出现上面的错误信息了.   增加第二个语句是因为让applet能读一些二进制文件.不然可能会出现 java.security.AccessControlException:
  access denied (java.lang.RuntimePermission
  file.encoding read)
错误.
  解决的方案来自于网上的讨论: http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/dba.html http://www.javaworld.com.tw/jute/post/view?bid=29&id=71700&tpg=1&ppg=1&sty=1&age=0 这两个地址是关于这个问题的讨论和分析.