【问题标题】:Unable to run jetty start.jar无法运行码头 start.jar
【发布时间】:2013-05-22 07:18:13
【问题描述】:

当我运行 start.jar 时出现以下错误:

 Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/
 jetty/start/Main : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    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$000(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)
 Could not find the main class: org.eclipse.jetty.start.Main. Program will exit.

根据 Jetty 文档 (http://www.eclipse.org/jetty/documentation/current/quickstart-running-jetty.html),我需要做的就是下载 zip、解压缩并运行 start.jar。 Google 似乎没有向我提供任何有类似问题的人。

谢谢, 山姆

【问题讨论】:

  • 你使用的是哪个 JDK?
  • 哪个 Jetty 版本?

标签: java jetty


【解决方案1】:

看看下面的discussion,特别是最受欢迎的答案。

很快你就会遇到类版本不兼容的问题。当您尝试使用以前版本的 JVM 运行它时,您的码头是用 java 7 的编译器编译的。解决方案是:前进到 Java 7:升级您的 JDK 并将 eclipse 配置为使用 java 7 并开始享受新功能。

【讨论】:

  • 啊,谢谢。不幸的是,我没有升级 JDK 的权限,所以我将把 Jetty 带回早期版本。
  • 如何找到合适的早期版本?解压 start.jar 并在 META-INF/MANIFEST.MF 中查找 Build-Jdk,但即使是 jetty 版本 7.6.14 也是用 1.7.0_25 编译的
【解决方案2】:

当您使用更高版本的 JDK 编译某些代码时,可能会发生这种情况,请尝试检查用于编译代码的 JDK。

另外根据文档Jetty 9需要JVM 1.7。

更多链接:

【讨论】:

    【解决方案3】:

    Jetty 的最新版本需要 JVM 1.7 版。更新您的 JVM 或使用旧版本的 Jetty(不推荐)。

    您可以在此处查看 Jetty 版本:http://www.eclipse.org/jetty/documentation/9.0.2.v20130417/what-jetty-version.html#d0e75

    【讨论】:

    • 这是“使用旧码头版本”解决方案的一半。这意味着使用现有 JRE 从源代码构建的 Jetty8.x 可能有效。
    【解决方案4】:

    java.lang.UnsupportedClassVersionError 发生是因为编译时 JDK 较高,而运行时 JRE 较低。

    所以把你的JRE升级到JDK的编译时版本。

    【讨论】:

      【解决方案5】:

      Java 编译器是高级版本,而虚拟机不是。通过升级 JVM 或降级编译器 (JDK) 使其统一。我推荐第二种选择。祝你好运!!!!

      【讨论】:

        【解决方案6】:

        如果您正在配置例如 Jetty 8.1 服务器,但您的 Jetty 安装目录高于此,​​例如 9.1,也会发生这种情况。

        所以下载正确的 Jetty 安装,在 Eclipse 中转到 Windows -> Preferences -> Servers -> Jetty -> Edit -> 浏览到新下载的安装目录。

        【讨论】:

          猜你喜欢
          • 2014-02-02
          • 2012-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-19
          • 1970-01-01
          • 2021-09-07
          相关资源
          最近更新 更多