繁体   English   中英

Java VM EXCEPTION_ACCESS_VIOLATION 的可能原因?

[英]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% 知道您在做什么时才使用它。

您是否使用浏览器小部件并在浏览器小部件中执行 javascript? 如果是这样,那么在某些版本的 SWT 中存在导致 JVM 在本机代码中崩溃的错误,在各种 Windows 库中。

两个示例(我打开的)是错误 217306错误 127960 然而,这两个错误报告并不是 SWT 中 JVM 崩溃的唯一错误报告。

如果您不使用浏览器小部件,那么这些建议对您没有帮助。 在这种情况下,您可以搜索导致 JVM 崩溃SWT 错误列表。 如果这些都不是您的问题,那么我强烈建议您使用 SWT 打开错误报告。

就我而言,我收到了“问题框架:V [jvm.dll + ....]”,我只是尝试使用功能更强大的计算机来运行我的代码。该错误消失了!然后,如果您遇到有关Java虚拟机的错误,在配置更好的计算机上运行代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM