繁体   English   中英

Java Applet中的AccessControlException

[英]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中的大多数加载“只读”资源的方法都将接受FileURLInputStream 我最常使用URL作为通用工具。 URL可以表示Web资源,本地文件系统上的文件或深埋在Jar文件中的资源(无论是Web还是本地文件系统)。

问:我该如何解决?

答:嗯-不要尝试从applet读取客户端PC上的文件吗?

或阅读有关“政策文件”的信息:

Java applet在安全的“沙箱”中运行。 这是设计使然-为了最终用户的安全:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM