2

我在本地运行 Java 小程序时遇到问题,即类文件驻留在本地文件系统中,而不是在服务器上。下面的例子

<!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 甚至没有为小程序保留 200x200 的空间。Java 也没有在后台启动(Java 控制台没有像所有其他小程序那样打开),也就是说,这不是 Java 安全问题。没有警告/错误消息。

本地版本在 Chrome 中运行没有问题。该行为可在不同的机器(Mac/Linux)上重现。

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

4

2 回答 2

2

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

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

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

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

顺便说一句,我运行 FF 并注意到它最近在运行用于嵌入小程序和启动 JWS 应用程序的部署工具包脚本时开始失败。在我用你的测试之前,我没有意识到它只是(并且完全)忽略了“本地(未压缩,未签名)小程序元素”。它在没有警告或提示的情况下忽略它们的事实是..令人不安,至少对于必须编写或维护小程序的开发人员而言。:(


确定一个小程序加载成功的唯一方法是在加载使用 JS 查询小程序。如果在特定时间后无法从 JS 访问小程序的公共方法,则假定小程序由于某种原因无法加载并从那里继续。

于 2013-08-20T11:17:14.633 回答
2

这是Firefox 23 中的一个已知错误。它应该阻止使用本地不安全的代码库,..但也会意外阻止其他本地路径。

目前已知的解决方法是:

  • 设置security.fileuri.strict_origin_policy=falseabout:config
  • 使用本地网络服务器而不是其他答案中建议的本地文件
于 2013-08-20T12:51:39.337 回答