简体   繁体   English

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

[英]Java 8 Update 91 Web Start Application Has Long Startup Delay

We have a set of Java applications that we have been developing for years that are launched remotely via Web Start. 我们有一组Java应用程序,我们多年来一直在开发,通过Web Start远程启动。 After updating to Java SE 8 Update 91 there is a very significant pause (20-60 seconds depending on the application) in the startup process with no indication to the typical user that anything is happening. 更新到Java SE 8 Update 91后,在启动过程中会有一个非常显着的暂停(20-60秒,具体取决于应用程序),而不会向典型用户表明发生任何事情。 This pause occurs after Java's "Starting Application" dialog closes and before the application is launched. 在Java的“启动应用程序”对话框关闭之后和启动应用程序之前,会发生此暂停。

The length of the pause appears to be correlated with the size of the application. 暂停的长度似乎与应用程序的大小相关。 Reverting to Java 8 Update 77 eliminates the pause altogether, and these same applications start without any pause. 恢复到Java 8 Update 77完全消除了暂停,并且这些相同的应用程序在没有任何暂停的情况下启动。

Our applications do request "all-permissions" as we need to read/write data to the client's drive for caching purposes. 我们的应用程序确实请求“所有权限”,因为我们需要读取/写入客户端驱动器的数据以进行缓存。 So all of our jars are signed and have the necessary manifest modifications. 所以我们所有的罐子都签了名并进行了必要的清单修改。

If your Java settings have the Java console enabled then the console is displayed immediately following Java's "Starting Application" dialog that appears when the application's JNLP file is accessed. 如果您的Java设置启用了Java控制台,则在访问应用程序的JNLP文件时出现的Java“正在启动的应用程序”对话框后会立即显示控制台。 However, no activity is seen in the console during this pause (for instance none of the typical Java class loading messages appear until after the pause and none of our code in the "main" method is executed until after the pause). 但是,在此暂停期间控制台中没有看到任何活动(例如,在暂停之后,没有任何典型的Java类加载消息出现,并且在“main”方法中的任何代码都没有执行,直到暂停之后)。

Some of these applications are fairly large. 其中一些应用程序相当大。 The code we've written is about 10-12MB, and additional resources total between 15-20MB depending on the application. 我们编写的代码大约为10-12MB,额外资源总计在15-20MB之间,具体取决于应用程序。

I found a JDK bug report that sounds very similar... bug report This report states that using an older Java version results in instant startup if the Java cache is removed before the first start. 我发现了一个听起来非常相似的JDK错误报告... 错误报告此报告指出,如果在第一次启动之前删除了Java缓存,则使用较旧的Java版本会导致即时启动。 The issue that I'm reporting does not seem to be impacted by the Java cache. 我报告的问题似乎没有受到Java缓存的影响。 Reverting to Java 8 Update 77 results in instant startup without deleting the Java cache. 恢复到Java 8 Update 77会导致即时启动而不删除Java缓存。

The Java release notes for Java 8 Update 91 mention a bug fix "Regression in Applet startup time fixed". Java 8 Update 91的Java发行说明提到了一个错误修复“修复Applet启动时的回归”。 But I don't see anything that would indicate an intentional change that would result in a long pause during startup (such as increased security scanning, etc). 但我没有看到任何表明故意改变会导致启动期间长时间停顿的事情(例如增加安全扫描等)。

With this length of pause in startup and no ability to indicate to the user that something is happening we are getting complaints about the applications. 由于在启动时有这么长的暂停,并且无法向用户表明发生了什么事情,我们会收到有关应用程序的投诉。

Any help would be greatly appreciated. 任何帮助将不胜感激。

UPDATE July 1, 2016... 2016年7月1日更新......

I found this SO question that seems to describe the identical symptoms: similar issue . 我发现这个SO问题似乎描述了相同的症状: 类似的问题 However, it was related to Java 7 Update 40. And the resolution was to disable the revocation check in the deployment.properties file. 但是,它与Java 7 Update 40有关。解决方案是禁用deployment.properties文件中的吊销检查。

I have used the Java console to set "Do not check" for both "Perform signed code certificate revocation checks on" and "Perform TLS certificate revocation checks on". 我已经使用Java控制台为“执行签名代码证书吊销检查”和“执行TLS证书吊销检查”设置“不检查”。 And I checked to make sure that the changes are reflected in the deployment.properties file. 我检查以确保更改反映在deployment.properties文件中。 However, these setting do not fix or improve the issue at all. 但是,这些设置根本不能解决或改善问题。

If this had worked it would be a great indicator of the problem, but it would not be a useful "solution" to have clients turn off these revocation checks in their advanced settings. 如果这有效,那将是问题的一个很好的指标,但让客户在高级设置中关闭这些撤销检查不是一个有用的“解决方案”。 It especially wouldn't be helpful for the general public that have access to a number of our applications. 对于可以访问我们的许多应用程序的公众来说,这尤其没有帮助。

UPDATE July 7, 2016... 2016年7月7日更新......

Based on the comment by jaivalis I downloaded the early access release of the Java 8 Update 112 JRE. 根据jaivalis的评论,我下载了Java 8 Update 112 JRE的早期访问版本。 When I run our applications with this JRE there is no pause at all. 当我用这个JRE运行我们的应用程序时,根本没有停顿。 The applications run immediately after the "Starting Application" dialog closes. 应用程序关闭后,应用程序立即运行。

So far I can't find any notes that explain why this would be. 到目前为止,我找不到任何解释原因的说明。 I am hoping this "fix" isn't the result of new security measures that have not been completely applied to this early access release. 我希望这个“修复”不是新安全措施的结果,这些措施尚未完全应用于此早期访问版本。 I'm hoping that something has actually been addressed and that the immediate launch performance will remain when this release is official. 我希望实际上已经解决了一些事情,并且当这个版本正式发布时,立即启动性能将保持不变。

By the way I cannot find an official release date for Java 8 Update 112. I was hoping it would happen in July, but I see some indications of October. 顺便说一句,我找不到Java 8 Update 112的正式发布日期。我希望它会在7月份发生,但我看到了10月份的一些迹象。 Anyone have any information on when this update will be generally available? 任何人都有关于何时可以获得此更新的任何信息?

Here is the early access page for Java 8 Update 112 early access 这是Java 8 Update 112早期访问的早期访问页面
Here is the release date info I found Java 8 Update 112 release timeline 这是我发现Java 8 Update 112发布时间表的发布日期信息

This page also mentions a Java 8 Update 102, but I can't find an early access release for that update. 页面还提到了Java 8 Update 102,但我找不到该更新的早期访问版本。 Any links I find point to the 112 update. 我找到的任何链接都指向112更新。

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

Hello I found something that might help you :) 您好我找到了可能对您有帮助的东西:)

In the recent patch notes from Oracle it stated that this was a bug issue in the last patch of Java 在最近的Oracle补丁说明中,它表示这是最后一个Java补丁中的错误问题

Personally I would find a third-party to download a previous version of java 我个人会找到第三方下载以前的java版本

Here is a link to the patch notes http://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html 这是补丁说明的链接http://www.oracle.com/technetwork/java/javase/8u20-relnotes-2257729.html

Hope you find the issue! 希望你找到问题!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM