JRE 中的致命错误

Fatal Error in JRE

本文关键字:致命错误 JRE      更新时间:2023-10-16

我正在开发一个应用程序,并决定将java更新为java7。完成此操作并将适当的值设置为 env 后。变量$PATH和 $JAVA_HOME,我收到以下错误:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f19addeaa34, pid=28052, tid=139748278572864
#
# JRE version: Java(TM) SE Runtime Environment (7.0_40-b43) (build 1.7.0_40-b43)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b56 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.so+0x644a34]  get_method_id(JNIEnv_*, _jclass*, char const*, char const*, bool, Thread*)+0x84
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#

任何帮助,不胜感激。

更新:Java 和 JavaC:

java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
javac -version
javac 1.7.0_40

调用 GetMethodID 时,您将NULL作为 clazz 参数传递,因此程序在尝试运行该方法时会收到SEGV信号。发生这种情况可能是因为您之前加载时找不到正在使用的类,并且您没有错误检查来检测它。所以:

  1. 添加错误检查,以便您知道是否无法加载要使用的类。如果使用 FindClass 函数,请检查它是否不返回 NULL。
  2. 找不到该类可能是因为它不在类搜索路径上。检查运行程序时是否需要设置 CLASSPATH 环境变量,或者在创建 JVM 时是否需要设置 java.class.path 系统属性。
相关文章: