0

我正在开发一个应用程序,并决定将 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
4

1 回答 1

0

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

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