【发布时间】:2015-09-02 10:05:57
【问题描述】:
我想让我的 Tomcat JVM 版本为 7。所以我按照此处的说明进行操作:How to change Java version used by TOMCAT? 并将我的 JAVA_HOME 更改为我的 jdk7 目录。
为了确保,这里是命令:
$ echo $JAVA_HOME
/usr/lib/jvm/java-7-openjdk-amd64
我重新启动了 Tomcat。我想验证一下,然后运行我从这里得到的命令:https://stackoverflow.com/a/10822328/998318
$ /usr/share/tomcat7/bin/catalina.sh version
/usr/share/tomcat7/bin/catalina.sh: 1: /usr/share/tomcat7/bin/setenv.sh: -Dcom.sun.management.jmxremote: not found
/usr/share/tomcat7/bin/catalina.sh: 2: /usr/share/tomcat7/bin/setenv.sh: -Dcom.sun.management.jmxremote.port=1099: not found
/usr/share/tomcat7/bin/catalina.sh: 3: /usr/share/tomcat7/bin/setenv.sh: -Dcom.sun.management.jmxremote.authenticate=false: not found
/usr/share/tomcat7/bin/catalina.sh: 4: /usr/share/tomcat7/bin/setenv.sh: -Dcom.sun.management.jmxremote.ssl=false: not found
Using CATALINA_BASE: /usr/share/tomcat7
Using CATALINA_HOME: /usr/share/tomcat7
Using CATALINA_TMPDIR: /usr/share/tomcat7/temp
Using JRE_HOME: /usr/lib/jvm/java-7-openjdk-amd64
Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.28
Server built: Apr 8 2014 08:47:08
Server number: 7.0.28.0
OS Name: Linux
OS Version: 3.16.0-0.bpo.4-amd64
Architecture: amd64
JVM Version: 1.7.0_79-b14
JVM Vendor: Oracle Corporation
我确实看到 JVM 版本是 1.7.0_79-b14
发生了什么事?事实上,我开始了整个过程,因为由于版本不匹配,我的战争没有得到部署:
Caused by: java.lang.UnsupportedClassVersionError:
org/glassfish/jersey/servlet/init/JerseyServletContainerInitializer :
Unsupported major.minor version 51.0 (unable to load class
org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer)
更新 根据要求,这是运行 java -version 的输出:
$ java -version
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-1~deb7u1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
【问题讨论】:
-
也许 JRE_HOME 错了?
-
@MyPasswordIsLasercats 但是 JRE_HOME 和 JAVA_HOME 一样,而且是正确的
-
检查你的路径。它应该包括 JAVA_HOME/bin
-
也只需在命令行中使用 java -version 检查版本
-
只需使用
echo $JRE_HOME命令检查目标JRE。