线程"main"中的异常java.lang.UnsupportedClassVersionError:a(不支持的major.minor版本51.0)

Adn*_*nan 86 java exception java-7 unsupported-class-version

可能重复:
不支持的主要.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)
Run Code Online (Sandbox Code Playgroud)

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

joh*_*ary 72

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


小智 36

将PATH设置的内容复制到记事本,并检查1.4.2的位置是否在7之前.如果是,请在PATH设置中删除1.4.2的路径并保存.

保存并应用"环境变量"后关闭并重新打开cmd行.在XP中,路径不会反映在已经运行的程序中.


Jam*_*sev 10

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

  1. 发射 Eclipse.app
  2. 选择 Eclipse -> Preferences
  3. 选择 Java -> Installed JREs
  4. 单击Add...按钮
  5. 选择MacOS X VMJRE类型.按Next.
  6. 在"JRE Home:"字段中,键入 /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. 单击完成.

希望这可以帮助


lie*_*cno 9

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