java.security.AccessControlException异常一般怎么处理

灌木 2013-05-26 09:41:23
写的一个Applet小程序,在读入一个图片时,出现了java.security.AccessControlException异常,怎么处理。
Exception in thread "Thread-3" java.security.AccessControlException: access deni
ed ("java.io.FilePermission" "\D:\java\javaAppletExample\ch2\html\Sunset.gif" "r
ead")
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:366)
at java.security.AccessController.checkPermission(AccessController.java:
555)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
at sun.awt.image.URLImageSource.<init>(URLImageSource.java:55)
at sun.applet.AppletImageRef.reconstitute(AppletImageRef.java:51)
at sun.misc.Ref.get(Ref.java:64)
at sun.applet.AppletViewer.getCachedImage(AppletViewer.java:395)
at sun.applet.AppletViewer.getImage(AppletViewer.java:390)
at java.applet.Applet.getImage(Applet.java:274)
at java.applet.Applet.getImage(Applet.java:296)
at Ripple.run(Ripple.java:47)
at java.lang.Thread.run(Thread.java:722)
源程序47行是:
image = getImage(getDocumentBase(),name);
...全文
2156 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Emily_cao 2015-06-29
  • 打赏
  • 举报
回复
追问一下,出现AccessControlException,需要修改jdk//lib/security/java.‍policy文件还是,jdk/jre//lib/security/java.‍policy文件
灌木 2013-06-08
  • 打赏
  • 举报
回复
引用 2 楼 jintianhen1 的回复:
因为浏览器只能访问一定目录下的文件,不是可以访问所有的文件,Applet没有那么高的权限。所以解决方案有两个: 1,通过签名来解决: 2,通过更改java/lib/security/java.‍policy文件来实现。当然这种方式肯定不安全。具体做法是:将下面内容添加到java.policy文件中: ‍ permission java.util.PropertyPermission "user.dir ", "read "; permission java.util.PropertyPermission "user.home ", "read "; permission java.util.PropertyPermission "java.home ", "read "; permission java.util.PropertyPermission "java.class.path ", "read "; permission java.util.PropertyPermission "user.name ", "read "; permission java.lang.RuntimePermission "accessClassInPackage.sun.misc "; permission java.lang.RuntimePermission "accessClassInPackage.sun.audio "; permission java.lang.RuntimePermission "modifyThread "; permission java.lang.RuntimePermission "modifyThreadGroup "; permission java.lang.RuntimePermission "loadLibrary.* "; permission java.io.FilePermission " < <ALL FILES> > ", "read "; permission java.io.FilePermission "${user.dir}${/}jmf.log ", "write "; permission java.io.FilePermission "${user.home}${/}.JMStudioCfg ", "write "; permission java.net.SocketPermission "* ", "connect,accept "; permission java.io.FilePermission "C:\WINNT\TEMP\* ", "write "; permission java.io.FilePermission "C:\WINNT\TEMP\* ", "delete "; permission java.awt.AWTPermission "showWindowWithoutWarningBanner "; permission javax.sound.sampled.AudioPermission "record "; permission java.net.SocketPermission "- ", "listen "; permission java.net.SocketPermission "- ", "accept "; permission java.net.SocketPermission "- ", "connect "; permission java.net.SocketPermission "- ", "resolve "; permission java.security.AllPermission;
看着好复杂啊
静山晚风 2013-05-28
  • 打赏
  • 举报
回复
因为浏览器只能访问一定目录下的文件,不是可以访问所有的文件,Applet没有那么高的权限。所以解决方案有两个: 1,通过签名来解决: 2,通过更改java/lib/security/java.‍policy文件来实现。当然这种方式肯定不安全。具体做法是:将下面内容添加到java.policy文件中: ‍ permission java.util.PropertyPermission "user.dir ", "read "; permission java.util.PropertyPermission "user.home ", "read "; permission java.util.PropertyPermission "java.home ", "read "; permission java.util.PropertyPermission "java.class.path ", "read "; permission java.util.PropertyPermission "user.name ", "read "; permission java.lang.RuntimePermission "accessClassInPackage.sun.misc "; permission java.lang.RuntimePermission "accessClassInPackage.sun.audio "; permission java.lang.RuntimePermission "modifyThread "; permission java.lang.RuntimePermission "modifyThreadGroup "; permission java.lang.RuntimePermission "loadLibrary.* "; permission java.io.FilePermission " < <ALL FILES> > ", "read "; permission java.io.FilePermission "${user.dir}${/}jmf.log ", "write "; permission java.io.FilePermission "${user.home}${/}.JMStudioCfg ", "write "; permission java.net.SocketPermission "* ", "connect,accept "; permission java.io.FilePermission "C:\WINNT\TEMP\* ", "write "; permission java.io.FilePermission "C:\WINNT\TEMP\* ", "delete "; permission java.awt.AWTPermission "showWindowWithoutWarningBanner "; permission javax.sound.sampled.AudioPermission "record "; permission java.net.SocketPermission "- ", "listen "; permission java.net.SocketPermission "- ", "accept "; permission java.net.SocketPermission "- ", "connect "; permission java.net.SocketPermission "- ", "resolve "; permission java.security.AllPermission;
静山晚风 2013-05-28
  • 打赏
  • 举报
回复
因为浏览器只能访问一定目录下的文件,不是可以访问所有的文件,Applet没有那么高的权限。所以解决方案有两个: 1,通过签名来解决: 2,通过更改java/lib/security/java.‍policy文件来实现。当然这种方式肯定不安全。具体做法是:将下面内容添加到java.policy文件中: ‍ permission java.util.PropertyPermission "user.dir ", "read "; permission java.util.PropertyPermission "user.home ", "read "; permission java.util.PropertyPermission "java.home ", "read "; permission java.util.PropertyPermission "java.class.path ", "read "; permission java.util.PropertyPermission "user.name ", "read "; permission java.lang.RuntimePermission "accessClassInPackage.sun.misc "; permission java.lang.RuntimePermission "accessClassInPackage.sun.audio "; permission java.lang.RuntimePermission "modifyThread "; permission java.lang.RuntimePermission "modifyThreadGroup "; permission java.lang.RuntimePermission "loadLibrary.* "; permission java.io.FilePermission " < <ALL FILES> > ", "read "; permission java.io.FilePermission "${user.dir}${/}jmf.log ", "write "; permission java.io.FilePermission "${user.home}${/}.JMStudioCfg ", "write "; permission java.net.SocketPermission "* ", "connect,accept "; permission java.io.FilePermission "C:\WINNT\TEMP\* ", "write "; permission java.io.FilePermission "C:\WINNT\TEMP\* ", "delete "; permission java.awt.AWTPermission "showWindowWithoutWarningBanner "; permission javax.sound.sampled.AudioPermission "record "; permission java.net.SocketPermission "- ", "listen "; permission java.net.SocketPermission "- ", "accept "; permission java.net.SocketPermission "- ", "connect "; permission java.net.SocketPermission "- ", "resolve "; permission java.security.AllPermission;

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧