我有一个Java Webstart应用程序,它以-Xmx1G
成功启动,但未能以-Xmx2G
开头。我的一些用户确实需要2G的堆。Webstart应用程序无法以Java 8u60上的-Xmx2G开头
这似乎只是Java 8u60的问题,因为我有一个成功启动Java 8u51的人的报告。
失败看起来像这样:我看到蓝色的'Java ...'启动画面,然后在几秒钟后,它不再显示Java控制台,也没有产生任何预期的跟踪信息地点。
仅在内存少于2G的客户端上发生故障。但是,对于请求“最大”堆大小可能会导致应用程序很早失败并且没有任何诊断信息,我有点惊讶。毕竟,我们正在处理“最大”价值,而不是“初始”价值。我在多处阅读JVM不应该这样做。
但我还记得读到'初始',如果未指定,是基于最大值。所以,随着通过-Xmx2G
,我尝试通过-Xms512M
,-Xms256M
和-Xms128M
。但是,这种缩小初始堆大小的尝试无济于事。我无法从-Xmx2G
开始获得这个东西!
有没有人有任何光在这种情况下摆脱?一个办法?解决方法?在短期内,我将更改为-Xmx1G
,但正如我刚开始所说的,我有一些真正需要-Xmx2G
的用户。我想避免有两个单独的*.jnlp
文件,这也需要有两个单独的*.jar
文件!
如果JNLP无法启动,它不太可能正常启动效果更好。 顺便说一句:你检查是否使用64位jvm? – eckes
有趣的是,你应该说---我似乎每2-3个月都会遇到一个新的webstart问题,即使我的应用总是从本地启动。不,我没有检查客户机/ JRE是32位还是64位。但是,我可以通过修改“-Xmx”的参数来启动或不启动应用程序,并且故障点与可用内存相对应,所以我相当确信这是原因。 –