编辑:存在本地组件,这是win32上的SWT应用程序。
大多数情况下,这是虚拟机中的一个错误,但它也可能由任何本机代码(例如JNI调用)引起。
hs_err_pidXXX.log 文件应该包含有关问题发生位置的一些信息。
您还可以检查文件中的“Heap”部分。许多虚拟机错误是由垃圾收集(特别是旧版虚拟机)引起的。此部分应该显示在崩溃时垃圾是否正在运行。此外,此部分还显示堆的某些部分是否已填充(百分比数字)。
在低内存情况下,虚拟机崩溃的可能性要高得多。
找到答案了!
我曾经遇到同样的错误,并注意到提供 pid 日志文件内容的其他人都在运行 64 位 Windows,就像我一样。在日志文件的末尾,它包括 PATH 语句。在那里,我可以看到 C:\Windows\SysWOW64 不正确地列在 %SystemRoot%\system32 的前面。一旦我更正了这个问题,异常就消失了。
首先,您应该将JVM升级到最新版本。
您能再描述一下问题吗?还是它似乎是随机发生的?最近我们遇到了一个问题,JVM在随机时间崩溃。结果发现是硬件问题。我们将驱动器放入了新服务器后,问题完全消失了。
总之,JVM不应该崩溃,如上面的帖子所提到的,如果您没有进行任何JNI操作,那么我的直觉是您有硬件问题。
我有一个使用了很长时间且非常可靠的JNLP应用程序,现在遇到了同样的问题。这个问题是在我从Windows 7升级到Windows 10后立即开始出现的。根据我的调查,最可能是Win 10中的一个错误。
以下不是解决方案,而是一个丑陋的解决方法。在jre/bin目录下,有一个javaws.exe文件。如果我右键单击/属性/兼容性并勾选以管理员身份运行此程序,JNLP应用程序就可以正常工作了。
请注意,这种方法可能会导致安全问题,请仅在没有其他选择并且100%知道自己在做什么时使用它。
您是否正在使用浏览器小部件并在其中执行JavaScript?如果是这样,那么在某些版本的SWT中存在错误,会导致JVM在本机代码中崩溃,在各种Windows库中。
我打开的两个示例是bug 217306和bug 127960。然而,这两个错误报告并不是JVM在SWT中崩溃的唯一错误报告。
如果您没有使用浏览器小部件,则这些建议对您没有帮助。在这种情况下,您可以搜索SWT错误导致JVM崩溃的列表。如果这些都不是您的问题,那么我强烈建议您向SWT提交错误报告。