我正在尝试使用从AWS上运行的ubuntu实例创建的AMI。原始实例安装了java 1.7.0_21,JAVA_HOME指向它。我编译我的类,兼容性设置为1.7,因为我需要javax.net.ssl包。我的应用程序在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
答案 0 :(得分: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