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 系统库是否位于类路径中

于 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 回答