我想让我的 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
这是怎么回事?事实上,我开始了整个过程,因为我的 war 因为版本不匹配而没有部署:
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)
最佳答案
在 *nix
上,创建包含以下内容的 setenv.sh 文件:
JRE_HOME=/usr/java/jdk1.7.0_03/jre
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
关于java - 与 JAVA_HOME 不同的 Tomcat JVM 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350257/