[英]AccessControlException in Java Applet
我已经在网页中创建了一个applet,但是每次运行它时,我都会得到:
Exception in thread "Thread-13" java.security.AccessControlException: access denied ("java.io.FilePermission" "defensebg.png" "read")
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.checkRead(Unknown Source)
at java.io.File.canRead(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at Defense.run(Defense.java:63)
at java.lang.Thread.run(Unknown Source)
我该如何解决?
由于我对您的applet有所了解,并且确信这些图像是应用程序的固有部分,因此我将对paulms4采取不同的态度。
忘记File
实例。 他们既不可行,也没有必要。 只有受信任的applet可以访问File
,但是即使如此,applet唯一可以建立File
就是指向用户PC文件系统上位置的地方。 显然,您的applet的图像无法通过这种方式使用(好的-它们可能在浏览器缓存中,但这对我们没有用)。
通过URL
访问applet资源会更典型(更容易)。 可以相对于小程序的代码库或文档库建立URL。 如果图像实际上位于Jar中,则它们将成为嵌入式资源 -请参阅信息。 有关如何获取URL的页面。
J2SE中的大多数加载“只读”资源的方法都将接受File
, URL
或InputStream
。 我最常使用URL作为通用工具。 URL可以表示Web资源,本地文件系统上的文件或深埋在Jar文件中的资源(无论是Web还是本地文件系统)。
问:我该如何解决?
答:嗯-不要尝试从applet读取客户端PC上的文件吗?
或阅读有关“政策文件”的信息:
Java applet在安全的“沙箱”中运行。 这是设计使然-为了最终用户的安全:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.