java - Java Applet 中的 AccessControlException

标签 java security applet javax.imageio accesscontrolexception

我在网页中创建了一个小程序,但每当我运行它时,我都会得到以下信息:

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)

如何解决这个问题?

最佳答案

由于我对您的小程序有所了解,并且确信这些图像是应用程序的固有部分,因此我将对 paulms4 采取不同的策略。

忘记File 实例。它们对此既不可行,也没有必要。只有受信任的小程序才能访问文件,但即便如此,小程序可以建立文件的唯一位置就是指向该文件系统上的位置。用户的电脑。显然,您的小程序的图像无法通过这种方式获得(好吧 - 它们可能位于浏览器缓存中,但这对我们来说没有用)。

通过 URL 访问 applet 资源会更典型(也更容易)。可以相对于小应用程序的代码库或文档库建立URL。如果图像实际上在 Jar 内,它们就会变成 embedded resource - 查看信息。有关如何获取 URL 的页面。

J2SE 中加载“只读”资源的大多数方法都将接受 FileURLInputStream。我最常使用 URL 是因为它具有通用性。 URL 可以表示 Web 资源、本地文件系统上的文件或埋藏在 Jar 文件深处的资源(无论是在 Web 上还是在本地文件系统上)。

关于java - Java Applet 中的 AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174961/

相关文章:

Java GC 奇怪的行为还是内存泄漏?

java - 安全随机哈希

Hadoop 上的 Java 与 Python

c# - 使用 Registry.LocalMachine.OpenSubKey 时出现 SecurityException

python - 有没有办法用python的win32security验证用户权限

在 Applet 中上传图像时 Java 堆大小问题

java - GWT JSNI调用小程序方法

java - 带有 JRE 1.5 (IE6) 的小程序无法通过 HTTPS 打开 HTML 页面,适用于 JRE1.6

java - 即使我得到了正确的名称和路径,Zip 文件也没有被删除

javascript - 使用外部 URL 获取 iframe 的高度