Firefox中未显示本地Java小程序

时间:2013-08-20 10:53:09

标签: java firefox deployment applet

我在本地运行Java applet时遇到问题,即类文件驻留在本地文件系统中,而不是服务器上。以下示例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
    <body>
        <applet code="Java10Test.class"
            width=200
            height=200
            codebase="http://www.cis.upenn.edu/~matuszek/General/JavaVersionTests/"
            >
        </applet>
        Text ...
    </body>
</html>

适用于Firefox 23和Oracle Java 7u25。但是,如果我将Java10Test.class下载到本地计算机并将其放在与.html相同的文件夹中,无论我使用什么代码库,它都无效。我尝试codebase="."codebase="file:///pathToTheFolder"但没有成功。 Firefox甚至没有为applet保留200x200的空间。 Java也不是在后台启动的(Java控制台不像所有其他applet那样打开),即它不是Java安全问题。没有警告/错误消息。

本地版本可以在Chrome中正常运行。该行为可在不同的计算机(Mac / Linux)上重现。

在Firefox中本地使用applet的正确方法是什么?我需要这个系统,无法访问互联网。

2 个答案:

答案 0 :(得分:2)

  

在Firefox中本地使用applet的正确方法是什么?

从localhost的服务器运行它们(例如安装Apache),它们应该显示与网络上相同的行为。

  

..它仍然很有趣,为什么没有正确使用本地类文件。

我建议它与安全性有关。从本地文件系统加载脚本时,IE一直提示运行脚本的HTML。通常,“网络”被认为是比您自己的磁盘更安全的环境。

顺便说一句,我运行FF并注意到它最近在运行用于嵌入applet和启动JWS应用程序的Deployment Toolkit Script时失败了。我没有意识到它只是(并且完全)忽略了'本地(unjar'd,unsigned)applet元素',直到我与你的测试。在没有警告或提示的情况下忽略它们的事实是..disturbing,至少对于必须编写或维护applet的开发人员而言。 :(


确保applet成功加载的唯一方法是使用JS在加载后查询applet 。如果在特定时间后无法从JS访问applet的公共方法,则假定applet因任何原因无法加载并从那里继续。

答案 1 :(得分:2)

这是known bug in Firefox 23。它应该阻止使用本地不安全的代码库,如..,但也会意外阻止其他本地路径。

目前已知的解决方法是:

  • security.fileuri.strict_origin_policy=false
  • 中设置about:config
  • 使用本地Web服务器而不是其他答案中建议的本地文件