我正试图通过基于Java applet的程序解决问题的根源。它经常抓住一个没有响应的GUI(或白色屏幕)。这当然只有在客户站点部署时才会发生:-(。他们正在运行1.5系列的Sun JVM版本(不确定确切版本)。
我们有一个理论认为它与applet耗尽堆空间有关 - 听起来有道理吗?我在我的机器上设置的另一件事是禁用直接绘制,但这主要是为了避免在其他应用程序上出现奇怪的伪像。
他们在Citrix和普通PC上看到了这个问题,但显然Citrix上的用户可以做什么限制。
有什么建议吗?
答案 0 :(得分:2)
用尽堆空间应该会导致OutOfMemoryError
被抛出。这种情况听起来像是典型的死锁。找到你想要的所有线程的堆栈转储。 IIRC<您可以通过控制台或IIRC 1.6来完成JDK包括jps
和jstack
。
答案 1 :(得分:1)
首先确保客户使用他们正在使用的最新版JVM,并使他们在浏览器中启用Java控制台(这需要您进行一些研究)。
然后当它再次发生时,告诉他们查看控制台窗口并将内容剪切粘贴到您的邮件中。
答案 2 :(得分:0)
为了解决问题,您必须首先能够重现该问题。您将需要一个相同的系统来对此进行故障排除,一次进行一次更改,同时保持其他所有内容相等以确定原因。
答案 3 :(得分:0)
只是添加到这个答案(建立知识库,因为我正在研究这个)。
(至少)有两个与小程序相关的不同白色屏幕。
死锁(如Tom所述) - 当你在它前面拖动一个窗口时,区域不会刷新,所以你会得到奇怪的尾巴效果。
虚拟机崩溃 - 区域将变为白色,Java VM关闭(搜索hs_err_pid * .log,位置取决于浏览器)