代码之家  ›  专栏  ›  技术社区  ›  sk.

Java VM异常\u访问\u冲突的可能原因?

  •  30
  • sk.  · 技术社区  · 16 年前

    当Java虚拟机因异常访问冲突而崩溃并生成hs_err_pidXXX.log文件时,这表明了什么?错误本身基本上是一个空指针异常。它总是由JVM中的错误引起的,还是有其他原因,如硬件故障或软件冲突?

    6 回复  |  直到 16 年前
        1
  •  20
  •   jiriki    16 年前

    大多数情况下,这是VM中的一个bug。

    hs_err_pidXXX.log文件应包含有关问题发生位置的一些信息。

    您还可以检查文件中的“Heap”部分。许多VM错误都是由垃圾收集引起的(尤其是在旧VM中)。本节将向您展示崩溃时垃圾是否正在运行。本节还显示了堆的某些部分是否已填充(百分比数字)。

    VM在内存不足的情况下崩溃的可能性也比其他情况大得多。

        2
  •  9
  •   user2988439    11 年前

    找到答案!

        3
  •  2
  •   Jeremy    16 年前

    您应该做的第一件事是将JVM升级到最新版本。

    你能重复一下这个问题吗?或者这似乎是随机发生的?我们最近遇到了一个问题,我们的JVM在任意时间崩溃。原来是硬件问题。我们把驱动器放在一个新的服务器上,它完全消失了。

    总之,JVM永远不会崩溃,正如上面的海报所提到的,如果你没有做任何JNI,那么我的直觉是你有一个硬件问题。

        4
  •  1
  •   Kevin Day    16 年前

    如果您知道要查找什么,问题的原因将记录在hs_err*文件中。看一看,如果还不清楚,考虑堆栈的前5行或10行的跟踪和其他相关的信息(不要张贴整个事情,那里有大量的信息,这将无济于事),但你必须找出哪1%个 重要事项:-)

        5
  •  0
  •   Eddie    16 年前

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

    bug 217306 bug 127960 . 然而,这两个错误报告并不是SWT中JVM崩溃的唯一错误报告。

    如果您没有使用浏览器小部件,那么这些建议对您没有帮助。在这种情况下,您可以搜索 SWT bugs causing a JVM crash

        6
  •  0
  •   TomS    9 年前

    我在使用JNLP应用程序时遇到了同样的问题,我已经使用了很长时间,而且非常可靠。问题是在我从Windows7升级到Windows10后立即出现的。根据我的调查,它很可能是Win10中的一个bug。

    以下不是一个解决方案,而是一个丑陋的解决方法。在jre/bin目录中,有 . 如果我 右击 /特性/兼容性 以管理员身份运行此程序 ,JNLP应用程序开始工作。

    请注意,这种方法可能会导致安全问题,只有在您没有其他选择并且100%知道自己在做什么的情况下才使用它。