Tomcat JVM版本与JAVA_HOME不同

时间:2015-09-02 10:05:57

标签: java tomcat

我想让我的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

但是当我去在线经理时我看到了这个: enter image description here

发生了什么?事实上我开始了整个过程,因为我的战争由于版本不匹配而没有部署:

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)

2 个答案:

答案 0 :(得分:4)

*nix上,使用以下内容创建setenv.sh文件:

JRE_HOME=/usr/java/jdk1.7.0_03/jre
CATALINA_PID="$CATALINA_BASE/tomcat.pid"

答案 1 :(得分:3)

根据this article,有4种不同的方式:

<强> 1。通过更新JAVA_HOME或JRE_HOME更改JRE

  

这种方法实现非常简单,但它仅适用于从zip分发版安装的Tomcat (与作为服务安装的Tomcat相比)。

  • 如果只设置了JAVA_HOME环境变量,Tomcat将作为JDK变量指定的JAVA_HOME的一部分在JRE下运行。因此,我们通过更新此变量来更改Tomcat的JRE

  • 如果同时设置了JAVA_HOMEJRE_HOME环境变量,则首选JRE_HOME。以下是JRE_HOME变量(Windows上的路径)的有效值示例:

JRE_HOME=C:\Program Files\Java\jre7

<强> 2。使用“setenv”脚本更改JRE

  

我们可以通过在名为setenv.bat(在Windows上)或setenv.sh(在JRE_HOME上)的脚本文件中设置*nix变量来更改Tomcat的JRE。默认情况下,此文件不存在,因此请创建此类文件并将其放在CATALINA_BASE\bin目录下(CATALINA_BASE是Tomcat安装目录)。

在Windows上,使用以下内容创建setenv.bat文件:

set "JRE_HOME=C:\Program Files\Java\jdk1.7.0_03\jre"
exit /b 0

第3。在Tomcat服务管理器中更改JRE

对于作为服务安装的Tomcat安装(在Windows上),我们可以通过在Tomcat服务管理器程序中配置Java虚拟机设置(例如Tomcat7w.exe)来更改运行Tomcat的JRE版本,如下面的屏幕截图所示:

enter image description here

<强> 4。在Eclipse IDE中更改JRE

  

要在Eclipse中更改Tomcat运行时的JRE版本,请转到菜单Window&gt;喜好。在“首选项”对话框中,打开“服务器”&gt;在“运行时环境”节点中,在列表中选择一个Tomcat版本,然后单击“编辑”按钮

查看linked文章

中的更多信息