如何分析Java应用程序在x64操作系统上引起的系统冻结?
我有一个 java swing gui 应用程序(在许多不同的机器上运行多年没有问题),它会导致 Windows 7 x64 上的系统崩溃。我已经在几台机器上测试了该行为,并且在未定义的时间(几秒到最多 2 分钟之间)之后,整个系统将冻结 - 无法进行任何输入(ctrl+alt+delete 不起作用等)。
由于没有任何异常,没有Windows事件日志,并且内存或CPU消耗没有明显增加,我想知道如何分析问题? JVM 不应该阻止整个系统冻结吗?
出于测试目的 - 我能否确定应用程序应使用 x86 还是 x64 JRE/JDK 运行?我已经在我的机器上安装了这两个版本,并且我发现该 jar 始终会使用 x64 JRE 执行 - 即使我明确选择“打开方式”以及 x86 JRE 的路径。 这可以用 JAVA_HOME 变量控制吗?或者我可以编译我的程序以在特定版本中运行吗?
I have a java swing gui application (running for years on many different machines without problems) which causes system crashs on Windows 7 x64. I've tested the behaviour on several machines, and after an undefined time (between seconds and max. 2 minutes) the whole system will freeze - no way for any input (ctrl+alt+delete not working etc.).
As there are no exceptions, no Windows event logs and no noticeable increases in memory or cpu consumption, I wonder how to analyze the problem? Shouldn't the JVM prevent the whole system to freeze?
For testig purposes - can I determine that the application should be run with the x86 or x64 JRE/JDK? I've installed both on my machine and I've seen that the jar will always be executed with the x64 JRE - even if I explicitly choose 'open with' and the path to the x86 JRE.
Can this be controlled with JAVA_HOME variable or can I compile my program to be run in a specific version?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我可以将问题简化为 RMI 调用,并结合 Windows7 x64 下的病毒扫描程序/防火墙软件。卸载安全软件后一切正常!
I could strip the problem down to RMI calls in combination with virus scanner/firewall software under Windows7 x64. After deinstalling the security software everything worked fine!