89

可能重复:
不支持的主要 .minor 版本 51.0

我安装了 JDK7,一个简单的 hello word 程序被编译,但是当我运行它时,我得到了以下异常。

Exception in thread "main" java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 51.0)
    at java.lang.ClassLoader.defineClass0(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)

我检查java -version了命令提示符,它显示 Java 版本 1.4.2_03 但是当我尝试从 java.com 安装新的 Java 版本时,它说我推荐了 Java 7 版本。

4

5 回答 5

74

尝试sudo update-alternatives --config java从命令行设置您要使用的 JRE 的版本。这应该解决它。

于 2011-12-09T16:23:39.087 回答
36

Copy the contents of the PATH settings to a notepad and check if the location for the 1.4.2 comes before that of the 7. If so, remove the path to 1.4.2 in the PATH setting and save it.

After saving and applying "Environment Variables" close and reopen the cmd line. In XP the path does no get reflected in already running programs.

于 2011-08-30T00:51:21.110 回答
10

假设您使用的是 Eclipse,在 MAC 上您可以:

  1. 发射Eclipse.app
  2. 选择Eclipse -> Preferences
  3. 选择Java -> Installed JREs
  4. 点击Add...按钮
  5. 选择MacOS X VM作为 JRE 类型。按下一步。
  6. 在“JRE 主页:”字段中,键入/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
  7. 您应该在标题为“JRE 系统库:”的列表中看到系统库:
  8. 为 JRE 命名。推荐的名称是JDK 1.7. 单击完成。
  9. 选中您刚刚创建的 JRE 条目旁边的复选框。这将导致 Eclipse 将其用作所有新 Java 项目的默认 JRE。单击确定。
  10. 现在,创建一个新项目。对于此验证,从菜单中选择File -> New -> Java Project
  11. 在出现的对话框中,为您的项目输入一个新名称。对于此验证,键入 Test17Project
  12. 在对话框的 JRE 部分中,选择Use default JRE (currently JDK 1.7)
  13. 单击完成。

希望这可以帮助

于 2012-07-21T22:49:36.073 回答
9

在 Java 6 旁边安装 jdk7 后,我遇到了这个问题。使用update-alternatives --config javajdk7 正确更新了二进制文件,但$JAVA_HOME环境变量仍然指向 Java 6 的旧目录。

于 2012-10-24T10:33:09.877 回答
2

听起来您需要更改java可执行文件的路径以匹配最新版本。基本上,安装最新的 Java 并不一定意味着您的机器配置为使用最新版本。你没有提到任何平台细节,所以我只能这么说。

于 2011-08-30T00:32:49.593 回答