0

我正在尝试使用从在 AWS 上运行的 ubuntu 实例创建的 AMI。原始实例安装了 java 1.7.0_21 并且 JAVA_HOME 指向它。因为我需要 javax.net.ssl 包,所以我编译了兼容性设置为 1.7 的类。我的应用程序在 tomcat 中运行良好。但是当我尝试运行从 AMI 创建的实例时,我收到了Unsupported major.minor version 51.0 (unable to load class 错误消息。我ps对正在运行的进程进行了操作,我看到 tomcat 已按预期使用 jdk 1.7.0_21 启动。我不确定为什么会收到此错误。

  ubuntu@XXXX:~$ ps aux | grep tomcat
    tomcat6   2554  0.8 35.3 997460 213768 ?       Sl   07:01   0:21 /usr/local/java/jdk1.7.0_21/bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tomcat6-tmp org.apache.catalina.startup.Bootstrap start
4

1 回答 1

0

java.lang.UnsupportedClassVersionError 的发生是因为编译时 JDK 较高,而运行时 JDK 较低。您能否检查一下您的代码是用哪个版本编译的?

显示的版本号描述了类文件兼容的 JRE 版本。

报告的主要数字是:

J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(来源:http ://en.wikipedia.org/wiki/Java_class_file )

于 2013-09-12T08:33:47.057 回答