不支持major.minor版本51.0,即使使用相同的java版本进行编译和部署

时间:2014-06-06 15:00:58

标签: java eclipse tomcat

它可能看起来像一个现有问题..但其他答案并没有帮助我。 :(

这是我正在做的事情 1.在Eclipse中使用JDK1.7从Eclipse Web项目构建war文件(Windows 8) 2.将其复制到unix tomcat7 webapps文件夹中。 Unix也有java1.7。如果我运行java -version,它会说1.7 3.现在运行tomcat。它会抛出一个类的错误 不支持的major.minor版本51.0

不确定我在这里缺少什么。

2 个答案:

答案 0 :(得分:2)

  

它可能看起来像一个现有问题..但其他答案并没有帮助我。 :(

这就像现有的问题。我可以保证。

每次问题都基本相同。代码已经与Java 7一起编译,并且您正在运行它在较旧的JVM上运行。这就是错误信息的含义。总是

因此,您需要弄清楚代码在较旧的JVM上运行的原因。由于代码在Tomcat中运行,这意味着您需要弄清楚:

  • 如何启动Tomcat和
  • 为什么Tomcat启动过程/脚本使用较旧的JVM而不是您期望它使用的JVM。

这通常归结为识别和读取正在使用的启动脚本或脚本,并确定其环境变量设置的来源。

答案 1 :(得分:1)

消息“Unsupported major.minor version”表示您在jvm中运行java,其版本低于用于编译代码的版本。请注意,Java是向后兼容的,因此您可以在java 7上运行java 6,但不能相反。

要验证tomcat的版本,请使用:./ version.sh

当我在我的tomcat上运行时,我得到了这个:

<...>/usr/local/apache-tomcat-7.0.50/bin# ./version.sh
Using CATALINA_BASE:   /usr/local/apache-tomcat-7.0.50
Using CATALINA_HOME:   /usr/local/apache-tomcat-7.0.50
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.50/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/apache-tomcat-7.0.50/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.50/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.50
Server built:   Dec 19 2013 10:18:12
Server number:  7.0.50.0
OS Name:        Linux
OS Version:     2.6.32-47-server
Architecture:   amd64
JVM Version:    1.7.0_17-b02
JVM Vendor:     Oracle Corporation

请注意条目 JVM版本

您可以采取哪些措施来解决问题:使用相同版本编译您的类,或者安装最新版本的Tomcat。