我编写了一些基于 javafx 的 java 应用程序。它在我的团队开发机器上运行了 2 年,没有任何问题。但它在大约 700 台机器(具有不同的配置)上进行了生产安装,所有机器都运行 Windows 7 或 8,并且会随机崩溃。每天所有机器累计发生约 100 次崩溃。应用程序冻结并显示结束任务对话框,基本上是 Windows 终止了 java 应用程序。日志中没有错误,没有内存泄漏,在我分析的所有机器上,CPU 约为 20%。
它随机崩溃,与我所看到的特定配置无关。尝试更新 Java,但崩溃只是以不同的方式出现(黑屏 + 冻结,而不是仅冻结屏幕)。
应用程序正在播放 5-6 个不同的屏幕,每个屏幕都播放全屏视频,上面有一些动画文本。视频被压缩为 h264,所有设置都是为了减轻 CPU 的负载。
在一台电脑上,我收到了 JavaVM 崩溃日志,其中抱怨 javafx 使用了一些 gstreamer.dll。
有什么方法可以调试这种完全终止虚拟机的随机行为吗?有什么方法可以在某些 Windows 错误日志中查看它终止 Java 应用程序的原因吗?