Webstart应用程序无法以Java 8u60上的-Xmx2G开头

时间:2015-08-21 16:41:43

标签: java java-web-start

我有一个使用-Xmx1G成功启动的Java Webstart应用程序,但无法以-Xmx2G开头。我的一些用户确实需要2G的堆。

这似乎只是Java 8u60的一个问题,因为我有一个人用Java 8u51成功启动的报告。

失败看起来像这样:我看到蓝色的“Java ...”启动画面,然后几秒后, poof 它就消失了,然后显示Java控制台并且没有产生任何跟踪信息在预期的地方。

仅在可用内存小于2G的客户端上发生故障。但是,我有点惊讶的是,请求“最大”堆大小可能会导致应用程序如此早地失败并且没有任何诊断信息。毕竟,我们处理的是“最大”值,而不是“初始”值。我在多个地方读到JVM不应该这样做。

但我还记得读过“初始”,如果没有说明的话,是基于最大值。因此,在传递-Xmx2G的同时,我尝试传递-Xms512M-Xms256M-Xms128M。但是,这种缩小初始堆大小的尝试并没有帮助。我不能从-Xmx2G开始这个事情!

有没有人对这种情况有所了解?一个办法?解决方法?在短期内,我将更改为-Xmx1G,但正如我在开头所说,我有一些用户确实需要-Xmx2G。我想避免使用两个单独的*.jnlp文件,这也需要两个单独的*.jar个文件!

1 个答案:

答案 0 :(得分:0)

事实证明,如果客户端机器没有足够的内存来满足-Xmx,那正是Java8u60上的Webstart所做的。它试图启动,然后 poof ,它消失了,没有任何迹象表明出了什么问题。

因此,如果我想让具有更多内存的用户将该内存分配给我的应用程序,我将最终必须在不同的配置中构建我的应用程序。这是因为签名需要* .jnlp文件进入* .jar文件本身,并且此* .jnlp文件必须与用于启动应用程序的* .jnlp文件完全匹配。