【问题标题】:Accessing resources locally in an applet on IE6在 IE6 上的小程序中本地访问资源
【发布时间】:2010-10-16 07:57:03
【问题描述】:

在遇到错误时尝试关注http://java.sun.com/docs/books/tutorial/uiswing/components/icon.html。似乎 getResource 在 IE6 中本地访问页面时返回 null(即,当 URL 为 "C:\projects\html\test.html" 时)。类和资源在同一个 Jar 文件中。

有人知道原因和解决方法(如果存在的话)吗?

在 Win XP/IE 6/JRE 1.6.0_11 中遇到过,但在 Win XP/IE 7/1.6.0-b105 中没有遇到过。

在它工作的环境中,类加载器是:

sun.plugin.security.PluginClassLoader  

在它坏掉的环境中,它是:

sun.plugin2.applet.Applet2ClassLoader

【问题讨论】:

    标签: java applet internet-explorer-6 getresource next-generation-plugin


    【解决方案1】:

    只是一个猜测:也许小程序安全限制在这里适用?一般来说,除非小程序没有签名,否则是不允许访问本地资源的。如果从本地存储的页面打开小程序,我不确定这是如何工作的,但这很可能是根本原因。

    签署小程序并在浏览器中接受证书可能会解决问题。

    【讨论】:

    • 不太可能。小程序已签名,我已接受证书。
    • 不建议签名 - 我猜原始发布者没有经验能够检查代码是否安全。
    【解决方案2】:

    听起来不同之处在于您在 1.6u10 中使用了"next-generation" plugin technology。您可以禁用它并通过更改Java控制面板中的“高级”选项卡下的“适当”选项,使用旧插件技术。这至少可以将您的问题隔离到特定版本。

    【讨论】:

      【解决方案3】:

      您是否在 Java 控制台中检查了消息?

      据我所知,Internet Explorer 6 的安全规则比旧的 IE5 或 Netscape/Mozilla 更严格。虽然 Netscape 允许从本地驱动器打开的小程序访问该驱动器上的资源,但 IE 不允许。在这种情况下,您可能会在控制台中看到一些安全异常。

      设置一个本地网络服务器,例如Tomcat 并通过它访问包含小程序的 html 文件,例如http://127.0.0.1:8080/some/applet.html。然后小程序不再来自您的硬盘,并且能够访问服务器http://127.0.0.1:8080/提供的任何资源。

      【讨论】:

        【解决方案4】:

        本地运行的安全设置非常严格,请参阅security report(类似问题问here)。

        正如另一个答案中所建议的,在网络服务器中运行它(例如tomcat),你的大部分问题都应该消失了。

        【讨论】:

          【解决方案5】:

          正如 Nick 提到的,Java 6 更新 11 更改了在文件系统上运行的小程序的安全设置。通过使用 getResource(),您正在从一个 URL 加载,并且可能意外地遇到了不应该真正适用于您的新限制。

          尝试 getResourceAsStream() 代替,如下所示:

          InputStream in = getClass().getResourceAsStream("image.jpg");
          Image image = ImageIO.read(in);
          ImageIcon icon = new ImageIcon(image);
          

          我还没有实际测试过,但我通常不会从文件系统运行小程序 :)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-08-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-12-25
            • 1970-01-01
            相关资源
            最近更新 更多