[英]Possible causes of Java VM EXCEPTION_ACCESS_VIOLATION?
当 Java VM 因 EXCEPTION_ACCESS_VIOLATION 崩溃并生成 hs_err_pidXXX.log 文件时,这表示什么? 错误本身基本上是一个空指针异常。 它是否总是由 JVM 中的错误引起,还是有其他原因,例如硬件故障或软件冲突?
编辑:有一个本机组件,这是一个在 win32 上的 SWT 应用程序。
大多数情况下,这是 VM 中的错误。 但它可能由任何本机代码(例如 JNI 调用)引起。
hs_err_pidXXX.log 文件应包含有关问题发生位置的一些信息。
您还可以检查文件中的“堆”部分。 许多 VM 错误是由垃圾收集引起的(尤其是在较旧的 VM 中)。 此部分应显示崩溃时垃圾是否正在运行。 此部分还显示,是否填充了堆的某些部分(百分比数字)。
VM 在内存不足的情况下也更有可能崩溃。
找到答案了!
我遇到了同样的错误,并注意到提供 pid 日志文件内容的其他人正在运行 64 位 Windows。 就像我。 在最后的日志文件中,它包含了 PATH 语句。 在那里我可以看到 C:\\Windows\\SysWOW64 被错误地列在了:%SystemRoot%\\system32 之前。 一旦我纠正了它,异常就消失了。
您应该做的第一件事是将您的 JVM 升级到最新版本。
你能重复这个问题吗? 或者它似乎是随机发生的? 我们最近遇到了一个问题,即我们的 JVM 随机崩溃到处都是。 结果发现是硬件问题。 我们将驱动器放在新服务器中,它完全消失了。
最重要的是,JVM 永远不应该崩溃,正如上面提到的海报,如果你没有做任何 JNI,那么我的直觉是你有硬件问题。
如果您知道要查找什么,问题的原因将记录在 hs_err* 文件中。 看一看,如果仍然不清楚,请考虑发布堆栈跟踪的前 5 或 10 行和其他相关信息(不要发布整个内容,那里有大量信息无济于事-但你必须弄清楚哪 1%是重要的 :-) )
我已经使用了很长时间并且非常可靠的 JNLP 应用程序也有同样的问题。 我从Windows 7升级到Windows 10后立即出现问题。根据我的调查,这很可能是Win 10中的错误。
以下不是解决方案,而是一种丑陋的解决方法。 在 jre/bin 目录中,有javaws.exe 。 如果我右键单击/Properties/Compatibility并勾选Run this program as an administrator ,JNLP 应用程序开始工作。
请注意,这种方法可能会导致安全问题,只有在您别无选择并且 100% 知道您在做什么时才使用它。
就我而言,我收到了“问题框架:V [jvm.dll + ....]”,我只是尝试使用功能更强大的计算机来运行我的代码。该错误消失了!然后,如果您遇到有关Java虚拟机的错误,在配置更好的计算机上运行代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.