2014-01-29 157 views
0

我已经使用eclipse创建了一个jar文件。我的jdk版本是1.5.0。当我运行在linux机器上的那个jar文件与相同的JDK它工作正常。但是,当我运行Solaris机器上这个罐子JDK 1.5.0_14安装提示错误为类文件中版本号错误

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) 

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

+0

通常会在您编译更高版本并在较低版本的Java中运行时出现此类异常。 – Kick

+0

我知道你已经告诉我们这个版本,但是你可以在linux和solaris机器上发布'java -version'的结果吗? – BackSlash

+0

另外,请记住并不总是与运行eclipse的java相同的是eclipse用来编译应用程序 – Leo

回答

0

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

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

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

相关问题