[英]Java web start app crashes with OutOfMemoryError
我擴展了基因組學查看器,提供了約翰霍普金斯實驗室要求的某些功能。 當我從命令行運行該應用程序時,似乎沒有內存問題-該應用程序已使用-Xmx750m啟動。 但是,當我使用以下堆設置運行與Web啟動應用程序相同的應用程序時:
<java initial-heap-size="67108864" max-heap-size="1205862400" version="1.5+"/>
一段時間后,應用程序因OutOfMemoryError崩潰而崩潰:
ERROR [2011-01-12 16:28:22,437] [DefaultExceptionHandler.java:42] [AWT-EventQueue-0] Unhandled exception
java.lang.OutOfMemoryError
at java.util.zip.Inflater.init(Native Method)
at java.util.zip.Inflater.<init>(Unknown Source)
at java.util.zip.Inflater.<init>(Unknown Source)
本地應用程序和Web-start應用程序之間沒有什么區別,除了我已經簽名了在Web-start jnlp文件中調出的jars。 我嘗試使用JConsole和YourKit Java分析器將其附加到Web-start應用程序。 在每種情況下,我都通過調用HotSpotDiagnostic MBean的setVMOption操作來打開HeapDumpOnOutOfMemoryError屬性。 但是當應用崩潰時,不會生成堆轉儲。
在我看來,崩潰與在網絡啟動下運行有關。 我已經盡力在桌面應用程序上導致OutOfMemoryError-通過減少內存(-Xmx250m); 這會導致應用程序暫停很長一段時間(最多5分鍾),同時大概完成了垃圾收集。 但是,該應用程序總是在暫停后恢復運行-絕不會崩潰。
誰能告訴我在Web啟動下捕獲OutOfMemoryError上的堆轉儲的方法嗎? 但是,我懷疑我實際上可能根本沒有用完堆。 但這至少是一個起點。
我盡力了-任何幫助將不勝感激。
我在Windows XP-SP2上運行Java 1.6.0_20-b02。
我也在我的應用程序中看到了這一點。 就我而言,這是由JAR損壞引起的。 嘗試是否已簽名的jar仍然有效(嘗試在Winzip或其他zip工具中打開它們-我最喜歡的是TotalCommander中的CTRL + PGDOWN ;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.