如何找出运行tomcat版本

时间:2013-02-17 19:22:21

标签: java tomcat appfuse

我试图让Appfuse + tomcat + jRebel工作。

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

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

我曾经在错误页面中输入错误的网址(例如 localhost:8080 / dfsfsdf ),但现在却没有显示任何内容。

我的$CATALINA_HOME指向我自己的tomcat 7.0.27。 抱歉忘了提及,它适用于Windows

更新

由于这个问题在某种程度上受欢迎,我想解释为什么接受这个问题。很简单,这是第一个解决了我的问题。

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

28 个答案:

答案 0 :(得分:442)

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

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

答案 1 :(得分:88)

  1. 尝试解析或执行Tomcat_home / bin目录并查找 一个名为 version.sh version.bat 的脚本,具体取决于您的 操作系统。
  2. 执行脚本./version.shversion.bat
  3. 如果没有version.bat或version.sh那么 使用工具解压缩JAR文件(\ tomcat \ server \ lib \ catalina.jar)并查看文件org \ apache \ catalina \ util \ lib \ ServerInfo.properties。 “server.info =”下定义的版本。

答案 2 :(得分:50)

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

答案 3 :(得分:46)

执行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

答案 4 :(得分:40)

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

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

答案 5 :(得分:11)

当前运行Tomcat的版本

如果设置环境变量 - %CATALINA_HOME%,那么 Windows:

>> 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供应商:Oracle Corporation

答案 6 :(得分:9)

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

答案 7 :(得分:9)

使用发行说明

在主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
    

答案 8 :(得分:6)

运行以下

/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

答案 9 :(得分:6)

对于Windows机器

bin>version.bat
Using CATALINA_BASE:   "C:\apache-tomcat-7.0.53"
Using CATALINA_HOME:   "C:\apache-tomcat-7.0.53"
Using CATALINA_TMPDIR: "C:\apache-tomcat-7.0.53\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_65"
Using CLASSPATH:       "C:\apache-tomcat-7.0.53\bin\bootstrap.jar;C:\apache-tomcat-7.0.53\bin\tomcat-juli.jar"
Server version: Apache Tomcat/7.0.53
Server built:   Jan 01 2014 06:20:16
Server number:  7.0.53.0
OS Name:        Windows 10
OS Version:     10.0
Architecture:   amd64
JVM Version:    1.8.0_65-b17
JVM Vendor:     Oracle Corporation

对于Linux机器

# ./version.sh
Using CATALINA_BASE:   /usr/epramaan/apache-tomcat-7.0.56
Using CATALINA_HOME:   /usr/epramaan/apache-tomcat-7.0.56
Using CATALINA_TMPDIR: /usr/epramaan/apache-tomcat-7.0.56/temp
Using JRE_HOME:        /usr/java/jdk1.7.0_71/jre
Using CLASSPATH:       /usr/epramaan/apache-tomcat-7.0.56/bin/bootstrap.jar:/usr/epramaan/apache-tomcat-7.0.56/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.56
Server built:   Sep 26 2014 12:08:24
Server number:  7.0.56.0
OS Name:        Linux
OS Version:     2.6.32-431.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_71-b14
JVM Vendor:     Oracle Corporation

如果Tomcat作为服务安装:

#sudo /etc/init.d/tomcat version

答案 10 :(得分:4)

另一个选项是tomcat的视图发行说明,适用于linux / window

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

答案 11 :(得分:4)

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

来自HttpServlet的

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

来自ServletContextListener:

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

答案 12 :(得分:3)

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

sudo /etc/init.d/tomcat version

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

答案 13 :(得分:1)

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

答案 14 :(得分:1)

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

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

输出看起来像这样

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

答案 15 :(得分:1)

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

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

答案 16 :(得分:1)

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

这是我修复的方式

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

sudo find / -name "version.sh"

对我来说,输出是:

/opt/tomcat/bin/version.sh

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

sh /opt/tomcat/bin/version.sh

仅此而已。

我希望这会有所帮助

答案 17 :(得分:1)

在 Windows 上只需 cmd

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

答案 18 :(得分:1)

打开tomcat主页(通常为localhost:8080

你会看到这样的事情:

enter image description here

答案 19 :(得分:1)

我们在Windows环境中运行,我必须找到一种方法来获取Java环境之外的Tomcat版本。在不知道版本的情况下,我无法确定目录。我终于找到了最好的方法是使用:

查询Tomcat服务
  

C:\ temp&gt; sc query |找/我“tomcat”
  SERVICE_NAME:Tomcat6
  DISPLAY_NAME:Apache Tomcat 6.0 Tomcat6

答案 20 :(得分:1)

输入404.jspnon-existent.jsp

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

答案 21 :(得分:1)

在Unix服务器的终端上运行

w3m http://localhost:8080/

退出按q,然后按y

答案 22 :(得分: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从classpath上的Tomcat 7中的类开始。确保在进程命令行中使用诸如-Dcatalina.base-Dcatalina.home-classpath之类的选项。

答案 23 :(得分:0)

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

  

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

答案 24 :(得分:0)

在Linux中检查tomcat版本

cd /opt/tomcat/bin

./catalina.sh version

答案 25 :(得分:0)

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

答案 26 :(得分:0)

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

{运行-Tomcat的URL} /经理/状态

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

注意:我也在Tomcat6 and JRE7 compatibility issue. Unsupported major.minor version 51.0

上粘贴了这个答案

答案 27 :(得分:0)

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

Tomcat应该在进程中运行,如果不在Windows Vista / 7上,则运行到任务管理器&gt; tab(services)找到tomcat启动它然后进程。