Java 类文件中存在错误的版本号错误

Java 类文件中存在错误的版本号错误,java,linux,eclipse,solaris,Java,Linux,Eclipse,Solaris,我已经使用eclipse创建了一个jar文件。我的jdk版本是1.5.0。当我在linux机器上用相同的JDK运行jar文件时,它工作得很好。但是,当我在安装了jdk1.5.0\u14的solaris机器上运行这个jar时,它会给出如下错误 Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLo

我已经使用eclipse创建了一个jar文件。我的jdk版本是
1.5.0
。当我在linux机器上用相同的
JDK
运行jar文件时,它工作得很好。但是,当我在安装了
jdk1.5.0\u14
的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)

我找不到任何解决方案..?

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

您使用的是JVM1.5,但您的代码是由1.6或1.7(甚至可能是1.8?)的编译器编译的


所以,您应该在运行应用程序的计算机上升级java环境,或者使用1.5编译器编译应用程序。第一种方法肯定更可取

通常在编译更高版本并在更低版本的java中运行时会出现这种异常。我知道您已经告诉了我们该版本,但是您能否在linux和solaris机器上发布
java-version
的结果,请记住,运行eclipse的java并不总是eclipse用来编译应用程序
“哪个java”-版本
(并用backticks替换ticks)的java?这里回答得很好: