您的位置:首页 > 编程语言 > Java开发

java.lang.UnsupportedClassVersionError: *** : Unsupported major.minor version 51.0

2015-12-11 09:46 459 查看
今天写代码时碰见一个这样的错误:

java.lang.UnsupportedClassVersionError: com/ui/Test : Unsupported major.minor version 51.0

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:616)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)

at java.net.URLClassLoader.access$000(URLClassLoader.java:56)

at java.net.URLClassLoader$1.run(URLClassLoader.java:195)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:303)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)

Exception in thread "main"

它的意思是说,程序编译的时候用了一个较高版本的JDK,但是在程序运行的时候却用了一个较低版本的jdk。事实上,我也确实是这么做的,我在eclipse里面先用jdk1.7将程序跑了一遍,然后用jdk1.6跑程序就会出现上述的错误,原因就是在用jdk1.7跑了程序没有问题,这时候在工程的bin目录下面就产生了相应于jdk1.7的class文件,下次再用jdk1.6跑这个工程,由于class文件是有jdk1.7产生的,所以程序跑不通也不足为奇! 解决的方法就是在第一次跑这个工程的时候用用较低版本的jdk,然后再用较高版本的jdk跑或者是一直用较高版本的jdk跑。也就是JDK较高版本兼容较低版本、但是较低版本却是无法完成较高版本的功能。这也是符合逻辑的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: