Unsupported major.minor version 51.0解决办法
运行一个简单的程序出现的错误:
错误文本如下:
java.lang.UnsupportedClassVersionError: test/equalTest : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Exception in thread "main"
代码如下:
package test;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;
public class equalTest{
public static void main(String[] args) {
LinkedList<Person> list=new LinkedList<Person>();
Set<Person> set=new HashSet<Person>();
Person s1=new Person(1,"fanny");
Person s2=new Person(1,"fanny");
System.out.println("s1==(s2):"+(s1==s2));
System.out.println("s1.equals(s2):"+s1.equals(s2));
list.add(s1);
list.add(s2);
System.out.println("list.size:"+list.size());
set.add(s1);
set.add(s2);
System.out.println("set.size:"+set.size());
}
}
解决办法:
原因是软件开发环境和运行环境的JDK版本不同造成的,我的这个项目用的jdk是1.6,但是运行环境是1.7;
右击项目名:properties–>Java Compiler,勾选最上面Enable project specific settings后,选择Compiler compliance level版本——>为1.6---->Apply---->Yes---->OK 再重新运行就没有问题了。