Basically, an installation of Tomcat is running under the default JRE which can be found based on environment variables (JAVA_HOME), or registry entries (on Windows) or the JRE is specified during installation (Tomcat is installed as a service). Sometimes we need to change the default JRE for Tomcat, either for testing purposes or to run Tomcat under a targeted version of JRE. In this article, we summarize different ways to change JRE for a Tomcat installation.

To know which JRE version is used for Tomcat, go to the following URL:

localhost:8080/manager/status

And look at the JVM Version column:

See JVM version for Tomcat

 

1. Changing JRE by updating JAVA_HOME or JRE_HOME

This way is very simple to implement but it works only for Tomcat installed from a zip distribution (in contrast to Tomcat installed as a service).

    • If only the JAVA_HOME environment variable is set, Tomcat will run under the JRE as part of the JDK specified by the JAVA_HOME variable. Therefore, we change JRE for Tomcat by updating this variable.
    • If both the JAVA_HOME and JRE_HOME environment variables are set, the JRE_HOME is preferred. Here’s an example of a valid value for the JRE_HOME variable (path on Windows):

JRE_HOME=C:\Program Files\Java\jre7

Notice that updating the JAVA_HOME or JRE_HOME environment variables will affect all the applications that depend on them, so if you want to look for a more independent approach, see the second way as described below.

 

2. Changing JRE by using “setenv” script

We can change the JRE for Tomcat by setting the JRE_HOME variable in a script file called setenv.bat (on Windows) or setenv.sh (on *nix). This file does not exist by default, so create such file and place it under CATALINA_BASE\bin directory (CATALINA_BASE is the Tomcat installation directory).

On Windows, create the setenv.bat file with the following content:

set "JRE_HOME=C:\Program Files\Java\jdk1.7.0_03\jre"
exit /b 0

 

On *nix, create the setenv.sh file with the following content:

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

Note that this way only works with Tomcat installed from a zip distribution. It doesn’t apply for Tomcat installed as a service. Behind the scenes, the Tomcat’s start up script (startup.bat/startup.sh) will invoke the “setenv” script if it is present. One advantage of this way is that it doesn’t affect the system environment variables.

 

3. Changing JRE in Tomcat service manager

For a Tomcat installation which is installed as a service (on Windows), we can change the version of JRE that runs Tomcat by configuring the Java Virtual Machine setting in the Tomcat service manager program (e.g. Tomcat7w.exe), as shown in the following screenshot:

Change JVM for Tomcat

This way is very simple to perform, and it does not depend on the system environment variables JAVA_HOME or JRE_HOME.

 

4. Changing JRE in Eclipse IDE

If you are using Tomcat inside Eclipse IDE, changing the JRE version for Tomcat is also pretty easy. By default, Tomcat is running under the same JRE as Eclipse (Workbench default JRE). To change JRE version for a Tomcat runtime in Eclipse, go to the menu Window > Preferences. In the Preferences dialog, open the Server > Runtime Environments node, select a Tomcat version in the list, and then click the Edit button:

Edit Tomcat runtime in Eclipse

The Edit Server Runtime Environment dialog appears, select the targeted JRE version under the JRE list:

Change JRE for Tomcat in Eclipse

Click Finish to close this dialog, and click OK to close the Preferences dialog. Now restart Tomcat to see the effect. Note that we can spot the JRE version by looking at the Console view as shown below:

JRE version in Console view

 

Other Tomcat Tutorials:


About the Author:

is certified Java programmer (SCJP and SCWCD). He began programming with Java back in the days of Java 1.4 and has been passionate about it ever since. You can connect with him on Facebook and watch his Java videos on YouTube.



Add comment

   


Comments 

#10John Hart2020-12-22 09:44
Yes but the thing that I find difficult to remember is how to access the "Java Virtual Machine settings" when changing JRE in Tomcat service manager
Quote
#9S M Hafidh2020-08-09 19:23
you helped me starting tomcat

thank you
Quote
#8Nam2019-10-15 04:40
Hi Anndrey,
Is that app based on Spring Boot? If so, Tomcat version can be changed by specifying tomcat.version property in the pom.xml file, and then rebuild the app.
Reference: stackoverflow.com/.../...
Quote
#7Andrey2019-10-14 08:00
Hi Nam,
I have an application running an embedded Tomcat 8.0 and at a security scan it was found as a security risk with the solution to be upgraded to version 8.5.
The provider of the application is unable to update the application with the new Tomcat version...
Can you please tell me if it possible to update it "manually" (by myself)?
Thank you!
Quote
#6Nam2019-09-18 17:17
Hi Mrityunjay,
Java is backward-compatible, meaning that Java 1.8 will run 1.6 code well. You didn't mention exactly what Jars not loaded and errors, so I couldn't know the real cause of the problem.
Quote