207

我正在尝试让 Appfuse + Tomcat + jRebel 工作。

Appfuse 默认使用 Cargo 下载 tomcat(版本 7.0.33)并将应用程序部署到它。我希望使用已安装的 tomcat(版本 7.0.27)而不是下载的。我在appfuse FAQ之后进行了更改。

用 部署后mvn cargo:run,怎么知道实际运行的tomcat确实是7.0.27?

我曾经输入错误的 URL(例如localhost:8080/dfsfsdf)以在错误页面中看到它,但现在它什么也没显示。

我的$CATALINA_HOME观点是我自己的tomcat 7.0.27。抱歉忘了提,它适用于 Windows。

更新:

由于这个问题已经变得流行起来,我想解释一下为什么这个被接受的答案。很简单,这是第一个解决了我的问题。

我在看问题的标题, @Tech Junkie@CPU 100确实有最好的答案,但不是针对我遇到的场景。(我想知道是mvn cargo:run运行我安装的tomcat还是“嵌入项目”的tomcat) :)

4

29 回答 29

593

虽然这不是最近的,但我想,我的回答仍然可以帮助其他人:

cd tomcat/lib 
java -cp catalina.jar org.apache.catalina.util.ServerInfo

就是这样。

Server version: Apache Tomcat/7.0.30
Server built:   May 23 2013 02:54:10
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     3.13.0-36-generic
Architecture:   amd64
JVM Version:    1.7.0_65-b32
JVM Vendor:     Oracle Corporation
于 2014-02-14T07:35:35.050 回答
119
  1. 尝试解析或执行 Tomcat_home/bin 目录并根据您的操作系统查找名为version.shversion.bat的脚本。
  2. 执行脚本./version.shversion.bat

如果没有 version.bat 或 version.sh,则使用工具解压缩 JAR 文件 (\tomcat\server\lib\catalina.jar) 并查看文件 org\apache\catalina\util\lib\ServerInfo.properties。在“server.info=”下定义的版本。

于 2013-02-17T19:27:09.117 回答
56

tomcat/bin在您的目录中执行脚本:

sh tomcat/bin/version.sh

Server version: Apache Tomcat/7.0.42
Server built:   Jul 2 2013 08:57:41
Server number:  7.0.42.0
OS Name:        Linux
OS Version:     2.6.32-042stab084.26
Architecture:   amd64
JVM Version:    1.7.0_21-b11
JVM Vendor:     Oracle Corporation
于 2014-04-14T12:42:40.023 回答
52

如果您可以上传 JSP 文件,您可以打印出一些信息,如本例所示:bestdesigns.co.in/blog/check-jsp-tomcat-version

将此代码保存到名为 tomcat_version.jsp 的文件中:

    Tomcat Version : <%= application.getServerInfo() %><br>    
    Servlet Specification Version : 
<%= application.getMajorVersion() %>.<%= application.getMinorVersion() %> <br>    
    JSP version :
<%=JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() %><br>

当您访问http://example.com/tomcat_version.jsp时,输出应类似于:

Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0
于 2013-02-18T14:42:47.300 回答
43

您可以简单地http://localhost:8080/在您的网络浏览器中打开,这将打开显示正在运行的 Tomcat 版本的 Tomcat 欢迎页面,如下所示:

Apache Tomcat/7.0.42
  • 我假设您的 Tomcat 在端口 8080 上运行
于 2013-09-05T23:32:35.773 回答
15

使用发行说明

在 Tomcat 主文件夹中,您可以找到RELEASE-NOTES文件,其中包含以下几行(~第 20-21 行):

                Apache Tomcat Version 8.0.22
                        Release Notes

或者您可以使用命令行获得相同的信息:

  • 窗户

    type RELEASE-NOTES | find "Apache Tomcat Version"
    

    输出:

                 Apache Tomcat Version 8.0.22
    
  • Linux

    cat RELEASE-NOTES | grep "Apache Tomcat Version"
    

    输出:

                 Apache Tomcat Version 8.0.22
    
于 2016-02-19T12:56:21.650 回答
15
For windows machine 
Go to the tomcat directory C:\apache-tomcat-x.0.xx\bin
    bin>version.bat
    Using CATALINA_BASE:   "C:\apache-tomcat-x.0.xx"
    Using CATALINA_HOME:   "C:\apache-tomcat-x.0.xx"
    Using CATALINA_TMPDIR: "C:\apache-tomcat-x.0.xx\temp"
    Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_65"
    Using CLASSPATH:       "C:\apache-tomcat-x.0.xx\bin\bootstrap.jar;C:\apache-tomcat-x.0.xx\bin\tomcat-juli.jar"
    Server version: Apache Tomcat/7.0.53





For Linux Machine 
Go to the tomcat directory /usr/mack/apache-tomcat-x.0.xx/bin
    # ./version.sh
    Using CATALINA_BASE:   /usr/mack/apache-tomcat-x.0.xx
    Using CATALINA_HOME:   /usr/mack/apache-tomcat-x.0.xx
    Using CATALINA_TMPDIR: /usr/mack/apache-tomcat-x.0.xx/temp
    Using JRE_HOME:        /usr/java/jdk1.7.0_71/jre
    Using CLASSPATH:       /usr/mack/apache-tomcat-x.0.xx/bin/bootstrap.jar:/usr/mack/apache-tomcat-x.0.xx/bin/tomcat-juli.jar
    Server version: Apache Tomcat/7.0.56

如果 Tomcat 作为服务安装:

#sudo /etc/init.d/tomcat version
于 2016-02-19T13:06:21.373 回答
13

当前运行的Tomcat版本

如果您设置环境变量 - %CATALINA_HOME%,则 Windows :

>> cd %CATALINA_HOME%\bin
>> version

或者,

java.exe -cp lib\catalina.jar org.apache.catalina.util.ServerInfo

MY SETTING --- 希望您的设置类似于以下

%CATALINA_HOME% --- C:\Program Files\Tomcat\apache-tomcat-8.0.28

输出

服务器版本:Apache Tomcat/8.0.28 服务器构建:2015 年 10 月 7 日 18:25:21 UTC 服务器编号:8.0.28.0 操作系统名称:Windows 7 操作系统版本:6.1 架构:amd64 JVM 版本:1.8.0_111-b14 JVM 供应商:甲骨文公司

于 2017-05-25T13:39:38.767 回答
13

这个命令几乎可以检查所有内容:

java -cp tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo

或者

tomcat/bin/catalina.sh version

输出看起来像这样

Server version: Apache Tomcat/8.5.24
Server built:   Nov 27 2017 13:05:30 UTC
Server number:  8.5.24.0
OS Name:        Linux
OS Version:     4.4.0-137-generic
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation
于 2019-05-13T13:52:52.620 回答
12

要找出 Tomcat 的版本,请找到这个文件——对于 *nix 的 version.sh 或对于 Windows 的 version.bat。此 version.sh 文件通常位于 Tomcat bin 文件夹中。

phpmongodb@kumar:/usr/share/tomcat7/bin$ ./version.sh 

笔记

如果您不确定 version.sh 文件在哪里,请尝试以下命令:

sudo find / -name "version.sh"

了解有关 Tomcat7 的所有信息。

sudo find / -name "tomcat7"
于 2015-11-24T11:40:05.157 回答
12

在 Ubuntu 18.04 Linux 服务器上工作时,我遇到了这个挑战。

这是我修复它的方法

运行以下命令以确定version.sh文件的位置:

sudo find / -name "version.sh"

对我来说,输出是:

/opt/tomcat/bin/version.sh

然后,使用输出,将文件 ( version.sh) 作为 shell 脚本 ( sh) 运行:

sh /opt/tomcat/bin/version.sh

就这样。

我希望这有帮助

于 2020-09-09T13:48:03.553 回答
8

运行以下

/usr/local/tomcat/bin/catalina.sh version

它的响应将类似于:

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /var/tmp/
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /var/catalina.pid
Server version: Apache Tomcat/7.0.30
Server built:   Sep 27 2012 05:13:37
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     2.6.32-504.3.3.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_60-b19
JVM Vendor:     Oracle Corporation
于 2015-05-27T22:34:53.617 回答
6

我知道这可能为时已晚,但这可能很有用:如果您尝试从 Java 代码中了解 Apache Tomcat 服务器版本,您可以使用:

来自 HttpServlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    getServletContext().getServerInfo()
}

来自 ServletContextListener:

public void contextInitialized(ServletContextEvent event)  { 
    event.getServletContext().getServerInfo();      
}
于 2017-06-19T22:26:59.503 回答
6

另一种选择是从 tomcat 查看发行说明,适用于 linux/window

{Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt
于 2018-07-11T05:31:43.707 回答
5

如果 Tomcat 作为服务安装,请尝试:

sudo /etc/init.d/tomcat version

将“tomcat”替换为服务的实际名称。

于 2015-04-15T18:20:53.530 回答
3

在Linux中查看tomcat版本

cd /opt/tomcat/bin

./catalina.sh version
于 2019-06-13T11:00:36.323 回答
2

输入404.jspnon-existent.jsp

在页面底部获取 Tomcat/JBoss 版本号。

于 2016-04-27T05:22:51.157 回答
2

打开你的tomcat主页(通常localhost:8080

你会看到这样的东西:

在此处输入图像描述

于 2017-12-18T17:35:32.950 回答
2

对于检查 Tomcat 服务运行版本的 Windows PowerShell 命令行方法:

(get-service Tomcat*).DisplayName

样本输出...

Apache Tomcat 8.5 Tomcat8

如果还想了解其他详细信息,包括服务运行所在的文件夹的位置:

Get-WmiObject win32_service | Where-Object {$_.Name -like 'Tomcat*'} | select Name, DisplayName, State, PathName

样本输出...

Name    DisplayName               State   PathName
----    -----------               -----   --------
Tomcat8 Apache Tomcat 8.5 Tomcat8 Running "C:\Program Files\Apache Software Foundation\Tomcat 8.5\bin\Tomcat8.exe" /...
于 2020-08-15T17:08:37.187 回答
1

您可以通过其状态页面找到服务器信息:

{running-tomcat-url}/manager/status

在该页面上,您可以看到运行 Tomcat 的 Java 版本

注意:我还在Tomcat6 和 JRE7 兼容性问题上粘贴了这个答案。不支持的 major.minor 版本 51.0

于 2014-02-16T14:28:44.763 回答
1

在 Unix 服务器的终端上运行

w3m http://localhost:8080/

退出按 q 和下一个 y

于 2015-06-09T12:12:44.807 回答
1

为了保护 Tomcat 免受黑客攻击,建议我们尝试几个步骤来隐藏 Tomcat 版本信息。OWASP 项目建议了几个步骤。https://www.owasp.org/index.php/Securing_tomcat。如果一个 tomcat 安装因此受到保护,那么上述答案中只有 1 个会显示 tomcat 的版本。
即通过清楚地宣布版本号的$TOMCAT_HOME\RELEASE-NOTES 文件。

我有一个这样的受保护服务器,只有 RELEASE-NOTES 文件显示了 tomcat 的版本。所有其他技术都未能揭示版本信息。

于 2016-06-30T05:53:04.337 回答
1

我们在 Windows 环境中运行,我必须想办法在 Java 环境之外获取 Tomcat 版本。在不知道版本的情况下,我无法确定目录。我终于发现最好的方法是使用以下方法查询 Tomcat 服务:

C:\temp>sc 查询 | 查找 /I "tomcat"
SERVICE_NAME: Tomcat6
DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6

于 2017-10-31T14:19:36.887 回答
1

在 Windows 上只需 cmd

C:\Program Files (x86)\Extensis\Portfolio Server\applications\tomcat\bin>版本

于 2021-02-18T11:22:56.103 回答
1

检查你的tomcat日志目录。

goto  /var/log/tomcat8/

查看文件:catalina.out 它将显示下面的 tomcat 版本:

服务器版本名称:Apache Tomcat/8.5.72 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建:2021 年 10 月 28 日 00:54:01 UTC 04-Feb -2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号:8.5.72.0 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup .VersionLoggerListener.log 操作系统名称:Linux 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log 架构:amd64 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:1.8.0_312-b07

于 2022-02-04T02:08:14.677 回答
0

Windows 任务管理器 > 进程 > 查找 tomcat > 右键单击​​ > 打开文件位置 > 如果您运行 Tomcat7w.exe,它在描述中可见。

如果不在 Windows Vista/7 上,Tomcat 应该运行以在进程中可见,请转到任务管理器 > 选项卡(服务)找到 tomcat 启动它然后进程。

于 2013-02-17T19:58:31.900 回答
0

在类 Unix 环境中,我还建议检查实际运行的进程命令行:

$ ps aux | grep java

...
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.util.logging.config.file=/srv/tomcat-instances/bla/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xmx4096M -XX:+UseConcMarkSweepGC -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Xmx4096m -Xms4096m -XX:MaxPermSize=2048m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8090 -Dcom.sun.management.jmxremote.rmi.port=8090 -Djava.rmi.server.hostname=localhost -Djava.endorsed.dirs=/opt/apache-tomcat-8.0.47/endorsed -classpath /opt/apache-tomcat-8.0.47/bin/bootstrap.jar:/opt/apache-tomcat-8.0.47/bin/tomcat-juli.jar -Dcatalina.base=/srv/tomcat-instances/bla -Dcatalina.home=/opt/apache-tomcat-8.0.47 -Djava.io.tmpdir=/tmp/tomcat8-bla-tmp org.apache.catalina.startup.Bootstrap start
...

由于(操作系统)环境变量和(Java)系统属性被设置为意外值,人们可能会在微妙的奇怪行为上运行。我有一种情况,由于过时的 Tomcat setenv.sh,一个 Tomcat 8 从类路径上的一个 Tomcat 7 的类开始。确保在进程中的命令行选项如-Dcatalina.base,-Dcatalina.home-classpath有意义。

于 2018-10-16T13:21:13.643 回答
0

只需启动 tomcat 并在其中搜索“服务器版本名称catalina.logs,您将获得 tomcat 的版本。例如:

“2019 年 3 月 7 日上午 11:25:40 org.apache.catalina.startup.VersionLoggerListener 日志信息:服务器版本名称:Apache Tomcat/ 9.0.16

于 2019-03-07T06:00:15.290 回答
0

要单独了解确切的 tomcat 版本,只需访问vi tomcat/BUILDING.txt

于 2020-06-14T03:07:33.433 回答