【问题标题】:How to solve javax.servlet.ServletException: java.lang.UnsupportedClassVersionError?如何解决 javax.servlet.ServletException: java.lang.UnsupportedClassVersionError?
【发布时间】:2013-01-24 04:02:09
【问题描述】:

我已经将一个 Web 应用程序项目下载到我的 Mac OSX 10.8.2 上,并且我正在使用 Apache ant 来编译它。我在应用程序运行时遇到此错误,尝试编译和执行 JSP:

javax.servlet.ServletException: java.lang.UnsupportedClassVersionError
Unsupported major.minor version 51.0

我在网上搜索过这个问题,看来这个问题是编译版本与Java运行版本不同造成的。所有建议的解决方案都是“在 Eclipse 中设置编译器版本”,但我没有使用 Eclipse...

这是我的环境:

java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

如何检查类文件的 ant 编译版本并解决此问题?

【问题讨论】:

  • 您需要更清楚自己是如何运行项目的。我强烈怀疑你会发现 Tomcat 实际上是使用 Java 6 运行的。
  • 这是因为该项目是在较低版本上构建的。运行程序时需要降级版本

标签: java macos tomcat servlets ant


【解决方案1】:

这个问题是因为你在较高版本的java上编译了代码,然后在较低版本的java上运行代码。通常,服务器附带自己的 JVM 版本。因此,查找服务器使用的 jvm 的一种方法是检查服务器的启动日志。它应该显示 jvm 版本。

【讨论】:

    【解决方案2】:

    UnsupportedClassVersionError 主要是java运行版本和编译版本不匹配造成的。

    两个版本应该匹配以避免错误通过下面的链接去获取更多关于 ant 版本变化的细节。

    Why is Ant giving me a Unsupported major.minor version error

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 2023-01-07
      相关资源
      最近更新 更多