【问题标题】:Jar executed in eclipse but not running in UnixJar 在 Eclipse 中执行但不在 Unix 中运行
【发布时间】:2014-01-07 09:11:32
【问题描述】:

我有一个在 Eclipse 和 cmd 提示符下运行良好的 Jar。 当我尝试在 Unix 中执行相同的操作时,它没有执行。

注意: Unix 中的 Java 版本是 1.5 ; eclipse中的Java版本是1.7

java -jar text.jar

线程“主”java.lang.UnsupportedClassVersionError 中的异常:错误 .class 文件中的版本号 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:621) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:56) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:195) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

【问题讨论】:

    标签: java eclipse shell unix


    【解决方案1】:

    你自己回答了这个问题。在 1.7 编译时,您尝试在 1.5 环境中执行 jar。将您的 Unix JRE 更新到 1.7,它应该可以工作。

    或者,您可以在 1.5 中重建 jar。在eclipse中,在项目浏览器中右击你的项目=>属性=>java编译器=>编译器合规级别。

    【讨论】:

      【解决方案2】:

      当您尝试运行在类路径中有一个 jar 的应用程序时,您会收到 UnsupportedClassVersionError,该 jar 是使用比您在运行时使用的版本更新的版本构建的。

      【讨论】:

      • 解决办法是什么?
      • 升级你的机器到一个新的Java版本,或者使用旧的构建jar,如果旧的可以编译代码。
      【解决方案3】:

      当您尝试运行一个为比您现有的 Java 版本新的 Java 版本编译的类时,您会收到此错误;例如,如果您尝试在 Java 5 JVM 上使用为 Java 6 或更高版本编译的类。

      不一定非得是你自己的类;您可能正在使用一些为 Java 6 或更高版本构建的库。

      您是否使用特定的库(JAR 文件)?检查这些是否与 Java 5 兼容。或者将您的 Java 版本升级到 Java 6

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-04
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 1970-01-01
        • 2013-06-26
        • 2019-04-03
        相关资源
        最近更新 更多