Webstart 应用程序无法在 Java 8u60 上以 -Xmx2G 启动
Webstart application fails to start with -Xmx2G on Java 8u60
我有一个 Java Webstart 应用程序可以成功启动 -Xmx1G
,但无法启动 -Xmx2G
。我的一些用户确实需要 2G 的堆。
这似乎只是 Java 8u60 的问题,因为我有报告称有人使用 Java 8u51 成功启动。
失败看起来是这样的:我看到蓝色的 'Java...' 启动画面,然后几秒钟后,噗 它消失了,然后显示 Java console 并且没有在预期的地方产生任何跟踪信息。
故障仅发生在那些可用内存小于 2G 的客户端上。但是,请求 'maximum' 堆大小可能会导致应用程序过早失败并且没有任何诊断信息,这让我感到有些惊讶。毕竟,我们正在处理 'maximum' 值,而不是 'initial' 值。我在多个地方读到 JVM 不应该这样做。
但我还记得读过 'initial',如果未指定,则基于最大值。因此,在传递 -Xmx2G
的同时,我尝试传递 -Xms512M
、-Xms256M
和 -Xms128M
。但是,这种缩小初始堆大小的尝试并没有帮助。我无法让这件事以 -Xmx2G
!
开头
有没有人对这种情况有任何了解?一个解法?解决方法?短期内,我会改成-Xmx1G
,但是,正如我一开始所说,我有一些用户确实需要-Xmx2G
。我想避免有两个单独的 *.jnlp
文件,这也需要有两个单独的 *.jar
文件!
事实证明,如果客户端计算机没有足够的内存来满足 -Xmx
,这正是 Java8u60 上的 Webstart 所做的。它尝试启动,然后 poof,它消失了,没有任何迹象表明出了什么问题。
因此,如果我想让拥有更多内存的用户能够将内存分配给我的应用程序,我最终将不得不以不同的配置构建我的应用程序。这是因为签名需要将 *.jnlp 文件放入 *.jar 文件本身,并且此 *.jnlp 文件必须与用于启动应用程序的 *.jnlp 文件完全匹配。
我有一个 Java Webstart 应用程序可以成功启动 -Xmx1G
,但无法启动 -Xmx2G
。我的一些用户确实需要 2G 的堆。
这似乎只是 Java 8u60 的问题,因为我有报告称有人使用 Java 8u51 成功启动。
失败看起来是这样的:我看到蓝色的 'Java...' 启动画面,然后几秒钟后,噗 它消失了,然后显示 Java console 并且没有在预期的地方产生任何跟踪信息。
故障仅发生在那些可用内存小于 2G 的客户端上。但是,请求 'maximum' 堆大小可能会导致应用程序过早失败并且没有任何诊断信息,这让我感到有些惊讶。毕竟,我们正在处理 'maximum' 值,而不是 'initial' 值。我在多个地方读到 JVM 不应该这样做。
但我还记得读过 'initial',如果未指定,则基于最大值。因此,在传递 -Xmx2G
的同时,我尝试传递 -Xms512M
、-Xms256M
和 -Xms128M
。但是,这种缩小初始堆大小的尝试并没有帮助。我无法让这件事以 -Xmx2G
!
有没有人对这种情况有任何了解?一个解法?解决方法?短期内,我会改成-Xmx1G
,但是,正如我一开始所说,我有一些用户确实需要-Xmx2G
。我想避免有两个单独的 *.jnlp
文件,这也需要有两个单独的 *.jar
文件!
事实证明,如果客户端计算机没有足够的内存来满足 -Xmx
,这正是 Java8u60 上的 Webstart 所做的。它尝试启动,然后 poof,它消失了,没有任何迹象表明出了什么问题。
因此,如果我想让拥有更多内存的用户能够将内存分配给我的应用程序,我最终将不得不以不同的配置构建我的应用程序。这是因为签名需要将 *.jnlp 文件放入 *.jar 文件本身,并且此 *.jnlp 文件必须与用于启动应用程序的 *.jnlp 文件完全匹配。