我有一個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」的參數來啓動或不啓動應用程序,並且故障點與可用內存相對應,所以我相當確信這是原因。 –