10

我有一个带有 Java 小程序的页面,其中包含以下 JavaScript 代码,当窗口关闭以执行一些清理任务时,它会调用 LiveConnect:

window.onbeforeunload = function(e) {
    var result = document.OutApplet.closeCheck();

直到昨天,这都按预期工作,并在小程序中执行了清理任务。

现在 Java 7u51 可用了,我今天访问了这个小程序,并在提示更新到最新版本的 Java 时选择了“稍后”。现在,当我关闭窗口时,我收到一个 JavaScript 错误:

对象不支持属性或方法“closeCheck”

只是为了澄清这一点,安装了 Java 7u45。

这是预期的行为还是我能做些什么让它在 7u45 上仍然有效?我在发行说明中找不到任何提及这一点,在 7u51 之前,我们的实时连接调用仍然可以在没有最新安全基线的情况下工作。

更新

以上是我的 Java 安全设置为高。

我已将其更改为中并重复上述内容。我现在收到一条消息,询问我是要允许还是阻止 LiveConnect 呼叫。

允许 LiveConnect 提示

现在似乎有一个未记录的(据我所知)要求 LiveConnect 仅在您处于安全基线 (7u51) 时才能工作。

请注意,一旦我更新到 7u51,对小程序的 LiveConnect 调用无需对小程序进行任何更改即可工作

4

5 回答 5

6

这是一个已知的 Java 错误,影响从 7u25 到 7u45 的所有版本:

http://bugs.sun.com/view_bug.do?bug_id=8027405

唯一的解决方案是升级到7u45 7u51 或将 java 安全滑块设置为“中”。

[编辑] 根据错误报告更正了修复版本

于 2014-01-15T16:44:55.177 回答
1

至于为什么最近(昨天)开始失败是因为基线已更新https://javadl-esd-secure.oracle.com/update/baseline.version,现在如果您编辑 C:\Users\username\AppData\ LocalLow\Sun\Java\Deployment\security\baseline.versions 并将 1.7.0_51 更改为 1.7.0_45 并保存文件,它应该会再次开始工作(但最终可能会在一段时间后更新)。

于 2014-01-15T20:22:23.397 回答
1

1)关闭所有浏览器和程序

2) 在 Windows 资源管理器中,转到 %localappdata%low\Sun\Java\Deployment

3) 打开名为“deployment.properties”的文件</p>

4)在此文件末尾添加以下行

                 deployment.expiration.check.enabled=false

5) 保存并关闭文件

于 2014-02-14T05:34:38.243 回答
0

这里同样的问题。

早在 9 月,Oracle 就对新的强制性(见下文)选项发出了警告。我们在去年年底实施并交付了它们,但今天它们似乎不起作用......

https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html

于 2014-01-15T13:32:20.387 回答
0

如果您无法升级 JRE(卡在 1.7.0_25 和 1.7.0_45 之间),另一种解决方案:

  • 打开 1.7 JRE (javacpl.exe) 的 Java 控制面板
  • 转到高级选项卡
  • 取消选中以下“Java 插件”选项:“启用下一代 Java 插件”
于 2014-01-27T13:36:48.710 回答