7

Mac OSX 10.8.4 で Eclipse Juno を実行しています。Java アプリを実行しているときに jdk を 1.7 に更新しようとすると、次のエラーが発生します。

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/invoke/MethodHandle

ターミナルで実行すると

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)

これを更新するために、Eclipseで設定しました

ウィンドウ - 設定 - Java - インストールされた JRE - 複製

JRE home: /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
JRE name: Java SE 7 (MacOS X Default)

コンパイラレベルも変更

Window - Preferences - Java - Compiler - Compiler compilance level: 1.7

また、次の行を /Users/myUser/.bash_profile に追加しました。

VA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

export JAVA_HOME=$VA_HOME
export CLASSPATH=$VA_HOME
export PATH=$PATH:$JAVA_HOME/bin

それでも同じエラーが発生します

私が感謝するどんな助けでも

4

3 に答える 3

7

起動構成で、正しい JRE System Library がクラスパスにあることを確認します

于 2013-10-14T22:05:04.440 に答える
1

JAVA_HOME を PATH に追加しましたか? 通常、この問題は SDK の不適切なインストールが原因で発生します。試す

javac -version

コマンドラインから、これが

java -version

そして、上記と同じ NoClassDefFoundError を生成します。

于 2013-10-14T22:08:04.363 に答える
1

最も可能性の高い理由はjava/lang/NoClassDefFoundError、クラスパスに欠落している別の jar を参照するクラスパスに jar があることです。参照クラスは初期化されません。

あなたのケースでは、依存関係が追加された 1.7 にアップグレードしました。クラスパスがjdk/jre 1.7を参照していることを確認してください

于 2013-10-14T22:08:26.447 に答える