簡體   English   中英

如何調試凍結Windows的Java swing應用程序?

[英]How to debug a Java swing application that freezes Windows?

我正在開發獨立的(Swing)Java EE客戶端。 該應用程序服務器是JBoss 6.1.0。 某些Windows工作站在客戶端運行時凍結,而有些則沒有。 32位和64位Windows工作站都凍結,並且再次,某些32位和64位Windows工作站可以完美運行。 客戶端在Linux上運行良好,沒有任何問題。

我遵循了StackOverflow上的指示,人們建議使用-Dsun.java2d.noddraw=true禁用直接繪制。 它沒有幫助。

最讓我困惑的是,有些工作站幾乎是完全相同的-相同的Windows版本,相同的圖形驅動程序,相同的JRE,但有些工作得很好,而有些卻不能。

該應用程序大量使用Preferences API來存儲可停靠對象的各種位置(來自Docking Frames項目),它使用JBoss客戶端類。

我正在調查是否可能同時訪問Windows注冊表導致此問題(如果您有類似問題,請告訴我)...

首先猜測是爭用條件發生在GUI線程中的某處,並且GUI凍結了。 但這只會凍結GUI,而不會凍結整個Windows。

機器一旦凍結,便會響應ping,但是Windows服務無法正常工作。

我將不勝感激任何可以幫助我解決問題的提示。

編輯:

  • CPU使用率始終約為10%。
  • 線程數從不超過30,但是並非所有線程都是守護程序線程(包括AWT線程,RMI線程等)。

使用Watchdog嘗試EventQueue 您在應用程序中安裝備用EventQueue。 看門狗告訴您哪些事件正在鎖定您的GUI。

原來是ESET。 在安裝了ESET的每台Windows計算機上,我都遇到了這個問題。 顯然,ESET具有此“協議跟蹤”功能,默認情況下處於啟用狀態。 一旦關閉,我們再也不會遇到這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM