在网页中执行Applet访问数据库时 出现下列异常:
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
这两个地址是关于这个问题的讨论和分析.