我有一个在eclipse和cmd提示符下正常运行的Jar。 当我在Unix中尝试执行相同操作时,它没有执行。
注意: Unix中的Java版本是1.5; eclipse中的Java版本是1.7
java -jar text.jar
线程“main”中的异常java.lang.UnsupportedClassVersionError:错误 .class文件中的版本号 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 在java.net.URLClassLoader.access $ 100(URLClassLoader.java:56) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
答案 0 :(得分:3)
你自己回答了这个问题。在1.7编译时,您尝试在1.5环境中执行jar。将Unix JRE更新为1.7,它应该可以工作。
或者你可以在1.5重建jar。在eclipse中,右键单击项目浏览器中的项目=> properties => java compiler =>编译器合规性级别。
答案 1 :(得分:1)
当您尝试在类路径中运行具有jar的应用程序时,获得UnsupportedClassVersionError
,该类路径是使用比您在运行时使用的版本更新的版本构建的。
答案 2 :(得分:0)
当您尝试运行为比您拥有的Java版本更新的Java版本编译的类时,会出现此错误;例如,如果您尝试在Java 5 JVM上使用为Java 6或更高版本编译的类。
它不一定是你自己的班级;您可能正在使用为Java 6或更高版本构建的库。
您使用的是特定库(JAR文件)吗?检查它们是否与Java 5兼容。或者将Java版本升级到Java 6