-3

我正在尝试在服务器上部署我的 JSP 和 java 文件。但是当我尝试访问 jsp 时,我收到错误消息

 javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: com/usct/db/DBConnect : Unsupported major.minor version 51.0

我阅读了一些帖子,发现这是由于两个不同平台上的 Java 版本不同,但是当我这样做时,我在服务器和客户端上使用 JAVA 1.7

java -version

在我的 jdk/bin 中显示 java 版本是 1.7.0_10 和

Java SE Runtime Environment (build 1.7.0_10-b18)

有人可以帮我解决这个问题吗?

谢谢

4

4 回答 4

3

...但是当我这样做时,我在服务器和客户端上使用 JAVA 1.7 ...

最可能的解释是您实际上使用的是 Java 1.6 或更早版本……不管您怎么想。换句话说,当您从命令行运行时java -version,您将获得与用于运行 Web 容器的 Java 安装不同的 Java 安装。

ps -efl(如果您在 Linux 系统上,您应该能够通过运行和 greping for或类似方法来判断正在使用哪个 JVM "java"。或者,使用@dbf 建议的方法。)

值得注意的是,客户端上的 Java 版本不相关。异常发生在服务器端。

参考:How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version - 解释一般问题和解决方案。

于 2013-08-10T08:08:38.003 回答
1

java.lang.UnsupportedClassVersionError错误是由于编译时JDK较高而运行时JDK较低。

Java Version     Major Version

 Java 4               48.0 
 Java 5               49.0 
 Java 6               50.0 
 Java 7               51.0

因此,如果您使用 JDK 1.7 的 javac 编译您的 Java 源文件,它将创建主版本为 51.0 的类文件,如果您使用 Java 1.6 运行这些类文件,它将抛出 java.lang.unsupportedclassversionerror unsupported major.minor version 51.0 错误

尝试使用旧版本编译JDK或升级JRE.

更多更多信息请访问

于 2013-08-10T08:09:12.580 回答
0

我相信 com/usct/db/DBConnect不是Java提供的类。因此,您的错误原因不是您的编码和执行环境中的 jdk 和 jre 版本。您在客户端和环境中用于该类的 jar 似乎DBConnect是不同的 java 版本。

于 2013-08-10T08:03:33.647 回答
0

尝试从 JSP 打印 System.getProperty("java.version") 以检查服务器实际使用的版本。

于 2013-08-10T08:04:55.893 回答