8

最近我在 Linux Centos 上遇到了 Apache Tomcat 6.0.35 的问题。我收到错误消息-

java.lang.UnsupportedClassVersionError: myApp : Unsupported major.minor version 51.0 (unable to load class myApp)

当我发出命令时——

java -version

表明

java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.9) (rhel-1.28.1.10.9.el5_8-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

同样,当我发出命令时-

javac -version

表明 -

javac 1.6.0_22

要找到 Java,我给出命令 -

whereis java

输出是 -

java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java /usr/share/man/man1/java.1.gz

而对于

which java

它显示 -

/usr/bin/java

也为

which javac

输出是

/usr/bin/javac

其中myApp是在 Windows 中开发的 java 项目,并在Linux上的 Tomcats 的webapp目录中上传了 WAR 文件。

我不明白发生了什么?请问有人可以帮我解决问题吗?

提前致谢。

4

3 回答 3

6

您需要 Java 7 运行时,而不是 Java 6。有关此的一些详细信息,请参见http://en.wikipedia.org/wiki/Java_class_file#General_layout

或者,您需要查找和/或重新编译您的代码以与 Java 6 兼容。

于 2012-09-08T13:31:39.710 回答
3

例外是因为您的代码是使用比您尝试运行它的版本更高的版本编译的。在您的 Windows 机器中,您可能正在使用 Windows 7 来构建战争。检查javac -version你的 Windows 机器。

于 2012-09-08T16:24:11.940 回答
1

看起来你的代码是用 jdk7 编译的?

于 2012-09-08T13:32:25.443 回答