方老师:
今天调试了您的JDBCUpdateApplet程序.您说在直接用ie打开RunApplet.html文件.会在java控制台报
java.security.AccessControlException: access denied
(java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
(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";
permission java.util.PropertyPermission "file.encoding", "read";
再关闭ie,重新运行就可以解决这个问题.我在家里的机子中,增加以后就没有在出现上面的错误信息了.
增加第二个语句是因为让applet能读一些二进制文件.不然可能会出现
java.security.AccessControlException:
access denied (java.lang.RuntimePermission
file.encoding read)
错误.
access denied (java.lang.RuntimePermission
file.encoding read)
错误.
解决的方案来自于网上的讨论:
这两个地址是关于这个问题的讨论和分析.