有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我们有一套Java应用程序,我们已经开发了多年,通过WebStart远程启动。在更新到JavaSE8UPDATE91之后,启动过程中有一个非常重要的暂停(20-60秒,取决于应用程序),没有向典型用户指示正在发生任何事情。此暂停发生在Java的“启动应用程序”对话框关闭之后和应用程序启动之前

暂停的长度似乎与应用程序的大小相关。恢复到Java8UPDATE77完全消除了暂停,并且这些应用程序启动时没有任何暂停

我们的应用程序请求“所有权限”,因为我们需要将数据读/写到客户机的驱动器以进行缓存。因此,我们所有的JAR都已签名并进行了必要的清单修改

如果您的Java设置启用了Java控制台,那么控制台将立即显示在访问应用程序的JNLP文件时出现的Java“启动应用程序”对话框之后。但是,在暂停期间控制台中看不到任何活动(例如,在暂停之后才会出现典型的Java类加载消息,在暂停之后才会执行“main”方法中的任何代码)

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

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

Java8Update91的Java发行说明中提到了一个错误修复“小程序启动时间修复中的回归”。但我看不到有任何迹象表明有人有意更改,这会导致启动过程中出现长时间的暂停(如增加安全扫描等)

由于启动时有这么长的暂停时间,并且无法向用户表明发生了什么事情,因此我们收到了有关应用程序的投诉

任何帮助都将不胜感激

2016年7月1日更新

我发现这个问题似乎描述了相同的症状:similar issue。然而,它与Java7更新40有关。解决方案是在部署中禁用吊销检查。属性文件

我已经使用Java控制台为“在上执行签名代码证书吊销检查”和“在上执行TLS证书吊销检查”设置了“不检查”。我进行了检查,以确保这些更改反映在部署中。属性文件。但是,这些设置根本无法修复或改善问题

如果这样做有效的话,这将是一个很好的问题指示器,但是让客户端在其高级设置中关闭这些撤销检查并不是一个有用的“解决方案”。这对于能够访问我们的许多应用程序的普通公众来说尤其没有帮助

2016年7月7日更新

根据jaivalis的评论,我下载了Java8Update112JRE的早期access版本。当我用这个JRE运行我们的应用程序时,根本没有停顿。应用程序在“启动应用程序”对话框关闭后立即运行

到目前为止,我找不到任何注释来解释为什么会这样。我希望这个“修复”不是新的安全措施的结果,这些措施还没有完全应用到这个早期的访问版本中。我希望有些事情已经得到了解决,并且在本次发布正式发布后,立即发布的性能将保持不变

顺便说一下,我找不到Java8U的正式发布日期更新日期112。我本来希望它能在7月份发生,但我看到了10月份的一些迹象。有人知道此更新何时正式可用吗

这是Java 8 Update 112 early access的早期访问页面
这是我找到的发布日期信息Java 8 Update 112 release timeline

这个page还提到了Java8更新102,但我找不到该更新的早期访问版本。我找到的所有链接都指向112更新


共 (2) 个答案

  1. # 1 楼答案

    这个问题已经通过Java8Update101发行版(技术上为Build1.8.0_101-b13)得到了解决

  2. # 2 楼答案

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

    在Oracle最近的补丁说明中,它指出这是Java最后一个补丁中的一个bug问题

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

    这里是补丁注释的链接 http://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html

    希望你能找到问题