Java 8 Update 91 Web Start 应用程序启动延迟时间长

Java 8 Update 91 Web Start Application Has Long Startup Delay

我们有一组 Java 开发多年的应用程序,这些应用程序通过 Web Start 远程启动。更新到 Java SE 8 Update 91 后,启动过程中有一个非常明显的停顿(20-60 秒,具体取决于应用程序),典型用户没有任何迹象表明正在发生任何事情。此暂停发生在 Java 的 "Starting Application" 对话框关闭之后和应用程序启动之前。

暂停的长度似乎与应用程序的大小相关。恢复到 Java 8 更新 77 完全消除了暂停,并且这些相同的应用程序开始时没有任何暂停。

我们的应用程序确实请求 "all-permissions",因为我们需要 read/write 数据到客户端的驱动器以进行缓存。因此,我们所有的罐子都已签名并进行了必要的清单修改。

如果您的 Java 设置启用了 Java 控制台,那么当应用程序的 JNLP 文件是访问过。但是,在此暂停期间,控制台中没有看到 activity(例如,典型的 Java class 加载消息的 none 直到暂停后才会出现 none我们在 "main" 方法中的代码一直执行到暂停之后)。

其中一些应用程序相当大。我们编写的代码大约为 10-12MB,根据应用程序的不同,附加资源总计在 15-20MB 之间。

我发现了一个 JDK 听起来非常相似的错误报告... bug report 该报告指出,如果 Java 缓存在第一次启动之前被删除,则使用较旧的 Java 版本会导致即时启动。我报告的问题似乎不受 Java 缓存的影响。恢复到 Java 8 Update 77 会导致即时启动而不删除 Java 缓存。

Java 8 更新 91 的 Java 发行说明提到了错误修复 "Regression in Applet startup time fixed"。但我没有看到任何表明有意更改会导致启动期间长时间暂停的内容(例如增加安全扫描等)。

由于启动时的暂停时间如此之长,而且无法向用户表明正在发生某些事情,我们收到了有关应用程序的投诉。

如有任何帮助,我们将不胜感激。

2016 年 7 月 1 日更新...

我发现这个 SO 问题似乎描述了相同的症状:similar issue。但是,它与 Java 7 Update 40 有关。解决方案是在 deployment.properties 文件中禁用吊销检查。

我已经使用 Java 控制台为 "Perform signed code certificate revocation checks on" 和 "Perform TLS certificate revocation checks on" 设置了 "Do not check"。我检查以确保更改反映在 deployment.properties 文件中。但是,这些设置根本无法解决或改善问题。

如果这有效,那将是一个很好的问题指示器,但让客户在其高级设置中关闭这些吊销检查没有用处 "solution"。对于可以访问我们的许多应用程序的一般 public 尤其没有帮助。

2016 年 7 月 7 日更新...

根据 jaivalis 的评论,我下载了 Java 8 Update 112 JRE 的早期访问版本。当我 运行 我们的应用程序使用这个 JRE 时,根本没有停顿。 "Starting Application" 对话框关闭后 运行 应用程序立即关闭。

到目前为止,我找不到任何注释来解释为什么会这样。我希望这 "fix" 不是未完全应用于此早期访问版本的新安全措施的结果。我希望某些事情实际上已经得到解决,并且当此版本正式发布时,立即启动性能将保持不变。

顺便说一句,我找不到 Java 8 Update 112 的正式发布日期。我希望它会在 7 月发布,但我看到了 10 月的一些迹象。有人知道此更新何时普遍可用吗?

这是 Java 8 Update 112 early access
的抢先体验页面 这是我找到的发布日期信息 Java 8 Update 112 release timeline

page 还提到了 Java 8 更新 102,但我找不到该更新的早期访问版本。我找到的任何链接都指向 112 更新。

你好,我找到了一些可能对你有帮助的东西:)

在 Oracle 最近的补丁说明中,它指出这是 Java

的最后一个补丁中的错误问题

我个人会找第三方下载以前版本的java

这是 link 补丁说明 http://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html

希望您能找到问题所在!

此问题已通过 Java 8 update 101 版本(技术上构建 1.8。0_101-b13)得到解决。