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.pathJVM の作成時にシステム プロパティを設定する必要があるかどうかを確認します。
于 2013-09-30T13:46:13.360 に答える