虚拟服务器上的java webstart启动延迟

时间:2016-01-11 14:22:15

标签: java java-web-start jnlp

我们在java web start中遇到了烦人的问题。我们有一个巨大的Java应用程序,包含大约75个jar文件,我们的用户可以在我们的虚拟(hyper-v)远程桌面服务器上启动它们。 应用程序启动正常,首先通过jnlp图标标签显示启动画面,然后我们获取webstart下载和验证jar文件,最终应用程序启动。问题是我们在验证应用程序"之间存在8-9-10秒的差距。在我们的应用程序实际启动之前关闭对话框(如果激活了此对话框,则可以看到java控制台)。 这个差距是如此巨大,我们的许多用户实际上双击我们的应用程序图标再次启动它,因为他们认为出了问题。 我现在耐心地测试了很多,并提出以下建议:

  • 在本地PC而不是虚拟远程桌面服务器上启动应用程序时没有太大的差距。它只发生在我们的远程服务器上(我们有多个,它发生在所有这些服务器上)

  • 如果我几乎注释掉所有的jar文件,差距就会缩小很多,但它仍然存在3-4秒。

  • 以下行严重影响差距:

    <j2se version="1.6+" java-vm-args="-Xmx1300m" />
    

如果省略java-vm-args,或设置为非常低的数字,则差距会完全消失!但是,我们不能这样做。这是一个需要大量内存进行处理的大应用程序。

  • 如果我尝试作为独立应用程序运行,例如java -jar -Xmx1300m application.jar,则没有差距!

作为独立应用程序运行的原因是什么,在应用程序启动之前没有差距,但是作为webstart运行,我们在应用程序启动之前就有了很大的差距?为什么只能在我们的虚拟远程桌面服务器上,而不是在本地PC上呢? jp2launcher.exe有什么奇怪的怪癖,我们如何绕过它们呢? 顺便说一句,尝试在hyper-v中为其中一个服务器切换动态和静态内存,没有任何区别。

0 个答案:

没有答案