【问题标题】:Tomcat: How to find out running Tomcat version?Tomcat:如何找出正在运行的 Tomcat 版本?
【发布时间】:2013-02-02 05:18:00
【问题描述】:

我正在尝试让 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):)

【问题讨论】:

标签: java tomcat appfuse


【解决方案1】:

检查你的tomcat日志目录。 转到 /var/log/tomcat8/ 查看文件:catalina.out 它将在下面显示tomcat版本:

服务器版本名称:Apache Tomcat/8.5.72 2022 年 2 月 4 日 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 2022 年 2 月 4 日 04:00:58.537 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:Linux 2022 年 2 月 4 日 04:00:58.537 信息 [主要] org.apache.catalina.startup.VersionLoggerListener.log 架构:amd64 2022 年 2 月 4 日 04:00:58.537 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本:1.8.0_312-b07

【讨论】:

    【解决方案2】:

    我在使用 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
    

    就是这样。

    我希望这会有所帮助

    【讨论】:

    • 好吧,sudo updatedb && sudo locate version.sh 可能比使用 find 搜索整个磁盘要快。还是点个赞吧!特别是因为您的带有 find 的版本也适用于容器。
    【解决方案3】:

    在 Windows 上只需 cmd

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

    【讨论】:

      【解决方案4】:

      对于检查 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" /...
      

      【讨论】:

        【解决方案5】:

        要知道确切的tomcat版本,请访问vi tomcat/BUILDING.txt

        【讨论】:

          【解决方案6】:

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

          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
          

          【讨论】:

            【解决方案7】:
            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
            

            【讨论】:

            • 在这里 *nix。我的发行说明文件丢失了。运行 sudo 命令对我有用
            【解决方案8】:

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

            {running-tomcat-url}/manager/status
            

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

            注意:我也在Tomcat6 and JRE7 compatibility issue. Unsupported major.minor version 51.0上粘贴了这个答案

            【讨论】:

            • 不是只有安装manager的时候才会这样吗?我知道默认是 to 但我们没有
            • 这是唯一适用于较旧的 tomcats lice 3.x ok 的页面未找到但在您获得的标题中:服务器:Tomcat Web Server/x.x.x Final
            【解决方案9】:

            在Linux下查看tomcat版本

            cd /opt/tomcat/bin
            
            ./catalina.sh version
            

            【讨论】:

            • 这行得通,但你必须每次都使用'sudo',对吧?
            【解决方案10】:

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

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

            【讨论】:

              【解决方案11】:

              如果您可以上传 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
              

              【讨论】:

                【解决方案12】:

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

                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
                

                【讨论】:

                • 更具体一点,server/lib 将是,例如,/opt/tomcat/lib
                • 或者例如在 Windows 上,C:\Program Files\Apache Software Foundation\Tomcat 8.0\lib
                • 2017 年还在工作。在我的 CentOS 7 上,我需要转到 /usr/share/tomcat/lib。
                • 一台 Solaris 10 服务器,运行命令时出现错误“线程“主”java.lang.UnsupportedClassVersionError:.class 文件中的版本号错误”错误。在 RHEL 7.2 上,我得到了正确的输出。
                • 这应该被标记为正确答案。我不明白为什么需要编写 JSP 并部署它以确定 tomcat 版本。这个答案可以有更广泛的受众,而不仅仅是程序员,比如系统管理员只想知道确切的 tomcat 版本。
                【解决方案13】:

                在类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)有意义。

                【讨论】:

                  【解决方案14】:

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

                  {Tomcat_home}/webapps/ROOT/RELEASE-NOTES.txt
                  

                  【讨论】:

                    【解决方案15】:

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

                    你会看到这样的:

                    【讨论】:

                      【解决方案16】:

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

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

                      【讨论】:

                        【解决方案17】:

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

                        来自 HttpServlet:

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

                        来自 ServletContextListener:

                        public void contextInitialized(ServletContextEvent event)  { 
                            event.getServletContext().getServerInfo();      
                        }
                        

                        【讨论】:

                          【解决方案18】:

                          当前运行Tomcat的版本

                          如果您设置环境变量 - %CATALINA_HOME%,那么 窗户:

                          >> cd %CATALINA_HOME%\bin
                          >> version
                          

                          或者,

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

                          我的设置 --- 希望你的设置如下所示

                          %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供应商:甲骨文公司

                          【讨论】:

                            【解决方案19】:

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

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

                            【讨论】:

                              【解决方案20】:

                              输入404.jspnon-existent.jsp

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

                              【讨论】:

                                【解决方案21】:

                                使用发行说明

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

                                                Apache Tomcat Version 8.0.22
                                                        Release Notes
                                

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

                                • Windows

                                  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
                                  

                                【讨论】:

                                  【解决方案22】:
                                  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="下定义的版本。

                                  【讨论】:

                                  • 对不起,我忘了说,我在 Windows 中。但问题是,我实际上不知道哪个文件夹的 tomcat 正在运行
                                  • @Kossel 我添加了更多信息来检查您的版本,但它更手动。
                                  • 我在org\apache\catalina\util\ServerInfo.properties找到版本(没有lib包)
                                  【解决方案23】:

                                  要找出 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"
                                  

                                  【讨论】:

                                    【解决方案24】:

                                    在 Unix 服务器的终端上运行

                                    w3m http://localhost:8080/
                                    

                                    退出按q和下一个y

                                    【讨论】:

                                      【解决方案25】:

                                      运行以下

                                      /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
                                      

                                      【讨论】:

                                        【解决方案26】:

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

                                        sudo /etc/init.d/tomcat version
                                        

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

                                        【讨论】:

                                          【解决方案27】:

                                          在您的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
                                          

                                          【讨论】:

                                            【解决方案28】:

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

                                            Apache Tomcat/7.0.42
                                            
                                            • 我假设你的 Tomcat 在 8080 端口上运行

                                            【讨论】:

                                              【解决方案29】:

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

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

                                              【讨论】:

                                              • 我去了任务管理器,唯一显示的进程是java.exe而不是tomcat7w.exe。如果我杀死 java.exe,服务器就会死掉
                                              猜你喜欢
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 1970-01-01
                                              • 2010-11-26
                                              • 2013-02-02
                                              • 2017-03-03
                                              • 2011-04-26
                                              • 2011-04-15
                                              • 1970-01-01
                                              相关资源
                                              最近更新 更多