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