类文件中的版本号错误

时间:2014-01-29 09:34:53

标签: java linux eclipse solaris

我使用eclipse创建了一个jar文件。我的jdk版本是1.5.0。当我在linux机器上使用相同的JDK运行该jar文件时,它工作正常。但是当我在安装了JDK 1.5.0_14的solaris机器上运行这个jar时,它会给出错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
        at java.lang.ClassLoader.defineClass1(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)

我无法得到任何解决方案..?

1 个答案:

答案 0 :(得分:0)

当JVM无法读取类文件时会发生这种情况。由于JVM是向后兼容的,即支持较旧版本的类文件,因此您的类是由比您正在使用的JVM更新的编译器创建的。

您正在使用JVM 1.5,但您的代码是由编译器编译的1.6或1.7(甚至可能是1.8?)。

因此,您应该在运行应用程序的机器上升级java环境,或者使用1.5编译器编译应用程序。第一种方式绝对是可取的。