Tomcat: How to find out running Tomcat version?

JavaTomcatAppfuse

Java Problem Overview


I'm trying to get Appfuse + Tomcat + jRebel working.

Appfuse by default uses Cargo to download tomcat (ver. 7.0.33) and deploy the application to it. I wish to use an already installed tomcat (ver. 7.0.27) instead of the downloaded one. I made the change following the appfuse FAQ.

After deploying with mvn cargo:run, how can I know that the actual running tomcat is indeed 7.0.27?

I used to type a wrong URL (ex. localhost:8080/dfsfsdf) to see it in the error page, but now it shows nothing.

My $CATALINA_HOME points to my own tomcat 7.0.27. sorry forgot to mention, it's for Windows.

Update:

Since this question had become somehow popular, I would like to explain why that accepted answer. simple, it was the first one which solved my problem.

I am looking at the title of the question, @Tech Junkie and @CPU 100 really have the best answer, but not for the scenario I was encountered. (I was wanting to know if mvn cargo:run runs my installed tomcat or a "project embeded" tomcat) :)

Java Solutions


Solution 1 - Java

Though this is not recent, I thought, my answer can still help others:

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

and that's it.

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

Solution 2 - Java

  1. Try parsing or executing the Tomcat_home/bin directory and look for a script named version.sh or version.bat depending on your operating system.
  2. Execute the script ./version.sh or version.bat

If there are no version.bat or version.sh then use a tool to unzipping JAR files (\tomcat\server\lib\catalina.jar) and look in the file org\apache\catalina\util\lib\ServerInfo.properties. the version defined under "server.info=".

Solution 3 - Java

execute the script in your tomcat/bin directory:

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

Solution 4 - Java

if you can upload a JSP file you may print out some info like in this example: bestdesigns.co.in/blog/check-jsp-tomcat-version

Save this code into a file called tomcat_version.jsp:

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

When you access, http://example.com/tomcat_version.jsp, the output should look similar to:

Tomcat Version : Apache Tomcat/5.5.25
Servlet Specification Version : 2.4
JSP version: 2.0

Solution 5 - Java

You can simply open http://localhost:8080/ in your web browser and this will open Tomcat welcome page that shows running Tomcat version like this:

Apache Tomcat/7.0.42
  • I assume that your Tomcat is running on port 8080

Solution 6 - Java

Using the release notes

In the main Tomcat folder you can find the RELEASE-NOTES file which contains the following lines (~line 20-21):

> Apache Tomcat Version 8.0.22 Release Notes

Or you can get the same information using command line:

  • Windows:

      type RELEASE-NOTES | find "Apache Tomcat Version"
    

Output:

                 Apache Tomcat Version 8.0.22
  • Linux:

      cat RELEASE-NOTES | grep "Apache Tomcat Version"
    

Output:

                 Apache Tomcat Version 8.0.22

Solution 7 - Java

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

If Tomcat is installed as a service:

#sudo /etc/init.d/tomcat version

Solution 8 - Java

The version of currently running Tomcat

If you set the environtment variable - %CATALINA_HOME%, then Windows :

>> cd %CATALINA_HOME%\bin
>> version

Alternatively,

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

MY SETTING --- Hope yours will be similar to as follows

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

OUTPUT

Server version: Apache Tomcat/8.0.28 Server built: Oct 7 2015 18:25:21 UTC Server number: 8.0.28.0 OS Name: Windows 7 OS Version: 6.1 Architecture: amd64 JVM Version: 1.8.0_111-b14 JVM Vendor: Oracle Corporation

Solution 9 - Java

This one command which you can check almost everything:

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

or

tomcat/bin/catalina.sh version

And the output looks like this

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

Solution 10 - Java

I had this challenge when working on an Ubuntu 18.04 Linux server.

Here's how I fixed it:

Run the command below to determine the location of your version.sh file:

sudo find / -name "version.sh"

For me the output was:

/opt/tomcat/bin/version.sh

Then, using the output, run the file (version.sh) as a shell script (sh):

sh /opt/tomcat/bin/version.sh

That's all.

I hope this helps

Solution 11 - Java

To find out the Tomcat version, find this file – version.sh for *nix or version.bat for Windows. This version.sh file is normally located in the Tomcat bin folder.

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

Note

If you are not sure where is the version.sh file, try this command :

sudo find / -name "version.sh"

Find out everything about Tomcat7.

sudo find / -name "tomcat7"

Solution 12 - Java

run the following

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

its response will be something like:

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

Solution 13 - Java

I know it is maybe too late for this, but this could be usefull: If you try to know Apache Tomcat Server version from Java code, you can use:

from a HttpServlet:

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

from a ServletContextListener:

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

Solution 14 - Java

Another option is view release notes from tomcat,applicable to linux/window

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

Solution 15 - Java

If Tomcat is installed as a service, try:

sudo /etc/init.d/tomcat version

Swap out "tomcat" with the actual name of the service.

Solution 16 - Java

In Linux to check the tomcat version

cd /opt/tomcat/bin

./catalina.sh version

Solution 17 - Java

Enter 404.jsp or non-existent.jsp.

Get Tomcat/JBoss version number at bottom of page.

Solution 18 - Java

Open your tomcat home page (Usually localhost:8080)

You will see something like this:

enter image description here

Solution 19 - Java

For Windows PowerShell command-line method of checking running version(s) of Tomcat service:

(get-service Tomcat*).DisplayName

Sample output...

Apache Tomcat 8.5 Tomcat8

If also want to know additional details including the location of folder where service running at:

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

Sample output...

Name    DisplayName               State   PathName
----    -----------               -----   --------
Tomcat8 Apache Tomcat 8.5 Tomcat8 Running "C:\Program Files\Apache Software Foundation\Tomcat 8.5\bin\Tomcat8.exe" /...

Solution 20 - Java

You can find out the server information through its status page:

{running-tomcat-url}/manager/status

On that page you can see the version of Java on which your Tomcat runs

Note: I have also pasted this answer on https://stackoverflow.com/questions/17478093/tomcat6-and-jre7-compatibility-issue-unsupported-major-minor-version-51-0/21812446#21812446

Solution 21 - Java

run on terminal of the Unix server

w3m http://localhost:8080/

to quit press q and next y

Solution 22 - Java

For securing Tomcat from hackers, it's recommended that we try a few steps at hiding the tomcat version information. The OWASP project suggests a few steps. https://www.owasp.org/index.php/Securing_tomcat . If a tomcat installation is thus protected, then only 1 of the above answers will show the version of tomcat.
i.e going through the $TOMCAT_HOME\RELEASE-NOTES file where the version number is clearly announced.

I had one such protected server and only the RELEASE-NOTES file revealed the version of the tomcat. all other techniques failed to reveal the version info.

Solution 23 - Java

We are running in a Windows environment and I had to find a way to get the Tomcat version outside of the Java environment. Without knowing the version, I could not determine the directories. I finally found the best way was to query the Tomcat service using:

> C:\temp>sc query | find /I "tomcat"
SERVICE_NAME: Tomcat6
DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6

Solution 24 - Java

On Windows just cmd

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

Solution 25 - Java

check yout tomcat log directory.

goto  /var/log/tomcat8/

view the file: catalina.out it will show the tomcat version below:

>Server version name: Apache Tomcat/8.5.72 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Oct 28 2021 00:54:01 UTC 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.72.0 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 04-Feb-2022 04:00:58.537 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_312-b07

Solution 26 - Java

Windows task manager > Processes > find tomcat > right click > open file location > if you run Tomcat7w.exe it is visible at description.

Tomcat should running to be visible at Processes if not at Windows Vista/7 go to task manager > tab (services) find tomcat start it and then processes.

Solution 27 - Java

In Unix-like environments, I also recommend checking the actual running process command line:

$ 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
...

One can run on subtle weird behaviors due to (operating system) environment variables and (Java) system properties being set to unexpected values. I had a situation where due to an outdated Tomcat setenv.sh, A Tomcat 8 started with classes from a Tomcat 7 on the classpath. Make sure that in the process command line options such as -Dcatalina.base, -Dcatalina.home and -classpath make sense.

Solution 28 - Java

Simply start tomcat and search for "Server version name" in catalina.logs and you will get version of your tomcat. For example: >"Mar 07, 2019 11:25:40 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version name: Apache Tomcat/9.0.16"

Solution 29 - Java

To know exact tomcat version alone, just visit vi tomcat/BUILDING.txt

Solution 30 - Java

These Following 4 ways can be used to find out Apache Tomcat Version in Linux:

1). Linux via Version Script in Tomcat Bin Directory:

  1. Locate the Tomcat`s bin Directory that is being used
  2. Check for version.sh script exists, i.e. ll version.sh
  3. Execute the script either way: sh version.sh OR ./version.sh

This will output you sample as below:

enter image description here

2). Check Tomcat Version in Linux Command Line

ps -ef |grep -i tomcat // this is will output and you will need to eye-ball to find version, sample below

enter image description here

3). Get Tomcat version via Catalina.jar

Execute the following CMD in terminal, you will need to locate Lib folder in Tomcat

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

4). Get Tomcat version through JSP

  1. Create JSP page with the below code
  2. Then try to open the JSP via Tomcat in the Browser
  3. This will output the Tomcat Version you are running.

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionYichaozView Question on Stackoverflow
Solution 1 - JavaVenkatesh LaguduvaView Answer on Stackoverflow
Solution 2 - JavagrepitView Answer on Stackoverflow
Solution 3 - JavatokhiView Answer on Stackoverflow
Solution 4 - JavawemuView Answer on Stackoverflow
Solution 5 - JavaAbdelhameed MahmoudView Answer on Stackoverflow
Solution 6 - JavaROMANIA_engineerView Answer on Stackoverflow
Solution 7 - JavaMackView Answer on Stackoverflow
Solution 8 - JavaYergalemView Answer on Stackoverflow
Solution 9 - JavaSurasin TancharoenView Answer on Stackoverflow
Solution 10 - JavaPromise PrestonView Answer on Stackoverflow
Solution 11 - JavaNanhe KumarView Answer on Stackoverflow
Solution 12 - JavatcatView Answer on Stackoverflow
Solution 13 - JavaAramis Rodríguez BlancoView Answer on Stackoverflow
Solution 14 - JavaHarsimranjit Singh KlerView Answer on Stackoverflow
Solution 15 - JavaChristopher YangView Answer on Stackoverflow
Solution 16 - JavaNarendra KumarView Answer on Stackoverflow
Solution 17 - JavaIvan ChauView Answer on Stackoverflow
Solution 18 - JavaEduardoView Answer on Stackoverflow
Solution 19 - JavajrykowskiView Answer on Stackoverflow
Solution 20 - JavaCarlo LedesmaView Answer on Stackoverflow
Solution 21 - JavaAlvaro Vicente León SilvanoView Answer on Stackoverflow
Solution 22 - JavaanjanbView Answer on Stackoverflow
Solution 23 - Javakenbrown_ctView Answer on Stackoverflow
Solution 24 - JavaSteven BakerView Answer on Stackoverflow
Solution 25 - JavaMarkView Answer on Stackoverflow
Solution 26 - JavamadlymadView Answer on Stackoverflow
Solution 27 - JavaAbdullView Answer on Stackoverflow
Solution 28 - JavaShubhView Answer on Stackoverflow
Solution 29 - JavagobiView Answer on Stackoverflow
Solution 30 - JavaDulacosteView Answer on Stackoverflow