我们已经开发了多年的Java应用程序,这些应用程序是通过Web Start远程启动的。在更新为Java SE 8 Update 91之后,启动过程中会有一个非常明显的暂停(20-60秒,具体取决于应用程序),而没有任何迹象表明典型用户正在发生任何事情。在Java的“启动应用程序”对话框关闭之后和启动应用程序之前,将发生此暂停。
暂停的时间似乎与应用程序的大小相关。恢复为Java 8 Update 77完全消除了暂停,并且这些相同的应用程序启动时没有任何暂停。
我们的应用程序确实要求“所有权限”,因为我们需要将数据读/写到客户端驱动器以进行缓存。因此,我们所有的 jar 均已签名并进行了必要的 list 修改。
如果您的Java设置启用了Java控制台,则在访问应用程序的JNLP文件时出现的Java“启动应用程序”对话框之后立即显示该控制台。但是,在此暂停期间,控制台中看不到任何 Activity (例如,直到暂停之后,才会出现典型的Java类加载消息,并且直到暂停之后,“main”方法中的代码都不会执行)。
其中一些应用程序相当大。我们编写的代码大约为10-12MB,根据应用程序的不同,其他资源总计在15-20MB之间。
我发现了一个听起来很相似的JDK错误报告... bug report
该报告指出,如果在第一次启动之前删除了Java缓存,则使用较旧的Java版本会导致立即启动。我正在报告的问题似乎并未受到Java缓存的影响。恢复为Java 8 Update 77可以立即启动,而不会删除Java缓存。
Java 8 Update 91的Java发行说明提到了一个错误修复“Applet启动时的回归已修复”。但是我看不到任何表明有意更改的信息,该更改会导致启动过程中长时间停顿(例如增强的安全性扫描等)。
由于启动过程中有如此长的暂停时间,并且无法向用户表明发生了什么事情,因此我们收到了有关应用程序的投诉。
任何帮助将不胜感激。
更新于2016年7月1日...
我发现这个SO问题似乎描述了相同的症状:similar issue。但是,它与Java 7 Update 40有关。解决方案是禁用Deployment.properties文件中的吊销检查。
我已经使用Java控制台为“执行签名的代码证书吊销检查”和“执行TLS证书吊销检查”都设置了“不检查”。我检查以确保更改反射(reflect)在Deployment.properties文件中。但是,这些设置根本无法解决或改善问题。
如果这样可以解决问题,那么这将是一个很好的指示,但让客户在其高级设置中关闭这些吊销检查将不是一个有用的“解决方案”。对于可以访问我们许多应用程序的公众来说,这尤其无济于事。
更新2016年7月7日...
基于jaivalis的评论,我下载了Java 8 Update 112 JRE的早期访问版本。当我使用此JRE运行我们的应用程序时,根本没有暂停。 “启动应用程序”对话框关闭后,应用程序将立即运行。
到目前为止,我找不到任何注释来解释为什么会这样。我希望此“修复”不是尚未完全应用到此早期访问版本中的新安全措施的结果。我希望实际上已经解决了一些问题,并且在此版本正式发布后,即时发布性能仍将保持不变。
顺便说一下,我找不到Java 8 Update 112的正式发布日期。我希望它会在7月发生,但是我看到了10月的迹象。任何人都何时可以获得此更新的任何信息?
这是Java 8 Update 112 early access的早期访问页面
这是我发现Java 8 Update 112 release timeline的发布日期信息
此page还提到了Java 8 Update 102,但我找不到该更新的早期版本。我找到的所有链接都指向112更新。
最佳答案
Java 8更新101发行版(技术上是1.8.0_101-b13版)已解决了该问题。
关于Java 8 Update 91 Web Start应用程序具有较长的启动延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38132726/
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www