Java虚拟机EXCEPTION_ACCESS_VIOLATION的可能原因?(Possible c

2019-07-17 11:56发布

当Java VM与EXCEPTION_ACCESS_VIOLATION崩溃并产生hs_err_pidXXX.log文件,这说明什么? 错误本身基本上是一个空指针异常。 难道总是一个错误在JVM造成的,还是有其他原因发生故障一样的硬件或软件的冲突?

编辑:有本机组件,这是win32上的SWT应用程序。

Answer 1:

大多数时候,这是在VM中的错误。 但它可以通过任何本机代码(例如JNI调用)引起的。

该hs_err_pidXXX.log文件应包含有关该问题的发生,其中的一些信息。

您还可以查看文件中的“堆”一节。 许多VM错误都是由垃圾收集(expecially中老年的VM)引起的。 这部分应该告诉你,如果垃圾在崩溃时运行。 另外这部分显示,如果堆的部分路段填充(百分比数字)。

虚拟机也更可能在内存不足的情况崩溃比其他。



Answer 2:

答案找到了!

我有同样的错误,发现其他人谁提供的PID日志文件的内容是运行64位Windows。 就像我。 在最后的日志文件,它包含PATH语句。 在那里,我可以看到C:\ WINDOWS \ SysWOW64中被错误地列出提前:%SYSTEMROOT%\ SYSTEM32。 一旦我纠正它,异常消失。



Answer 3:

你应该做的第一件事是升级您的JVM到最新的就可以了。

你能重复的问题? 或者它似乎随机发生的? 我们最近有在那里我们JVM崩溃了所有的地方,在随机时间的问题。 原来这是一个硬件问题。 我们把驱动器在新的服务器,它完全走了。

底线,JVM应该永不死机,如上面的海报提到的,如果你的没有做任何JNI那么我的直觉是,你有一个硬件问题。



Answer 4:

该问题的原因将在hs_err *文件记录在案,如果你知道要寻找什么。 看一看,如果它仍然是不明确的,可以考虑发布第5个或10行的堆栈跟踪信息和其他相关信息(的不张贴整个事情,有一个在那里吨的信息是不会帮助 - 但你必须要弄清楚这1% 非常重要的:-))



Answer 5:

您使用的浏览器插件和浏览器插件执行JavaScript? 如果是这样,那么在SWT的一些版本引起JVM在本地代码崩溃,在各种Windows库中的bug。

两个例子(即我打开)是错误217306和错误127960 。 这两个bug报告不是SWT崩溃了JVM的唯一错误报告,但是。

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



Answer 6:

我有,我已经用了很长的时间和相当可靠的JNLP应用了同样的问题。 问题立即开始后,我升级从Windows 7到Windows 10,据笔者调查,这是最有可能在Win 10中的错误。

下面是不是一个解决方案,但一个丑陋的解决方法。 在JRE / bin目录中,有javaws.exe。 如果我右键单击 /性能/兼容性和打勾运行此程序作为管理员 ,在JNLP应用程序开始工作。

请注意,这种方法可能会导致安全问题,并用它只有当你有没有其他的选择,100%的人知道你在做什么。



文章来源: Possible causes of Java VM EXCEPTION_ACCESS_VIOLATION?