【问题标题】:Tomcat JVM version different from JAVA_HOMETomcat JVM 版本与 JAVA_HOME 不同
【发布时间】: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。

标签: java tomcat


【解决方案1】:

*nix 上,创建包含以下内容的 setenv.sh 文件:

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

【讨论】:

  • 这行得通,有点。我使用了export JRE_HOME="/usr/lib/jvm/java-7-openjdk-amd64",没有第二行,一切都修复了!
【解决方案2】:

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

1.通过更新 JAVA_HOME 或 JRE_HOME 来更改 JRE

这种方式实现起来非常简单但它仅适用于从 zip 发行版安装的 Tomcat(与作为服务安装的 Tomcat 不同)。

  • 如果仅设置了JAVA_HOME 环境变量,Tomcat 将作为JDK 变量指定的JDK 的一部分在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(在 *nix 上)的脚本文件中设置 JRE_HOME 变量来更改 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 虚拟机设置来更改运行 Tomcat 的 JRE 版本(例如Tomcat7w.exe),如图所示在以下屏幕截图中:

4.在 Eclipse IDE 中更改 JRE

要在 Eclipse 中更改 Tomcat 运行时的 JRE 版本,请转到菜单 Window > Preferences。在 Preferences 对话框中,打开 Server > Runtime Environments 节点,在列表中选择一个 Tomcat 版本,然后单击 Edit 按钮

linked文章中查看更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多