Difference between JAVA_HOME and JRE_HOME

java, java-home, tomcat

Solution

Tomcat enables some additional debugging options at start up if you are running with a full JDK. These options require the JDK so you Tomcat checks you are actually using one if you claim that you are to ensure these options don't fail if used.

I rarely see these options being used. I think I have used them once in getting on for 10 years working with Tomcat.

When you use JRE_HOME Tomcat doesn't enable JDK specific options so it doesn't check if you are running with the full JDK rather than the JRE.

Problem

I have a script that starts Tomcat and it looks like this: ``` rem set JRE_HOME=C:\Program Files\Java\jdk1.7.0_03 set JRE_HOME=C:\Program Files\Java\jre7\ set CATALINA_HOME=D:\test\Server\apache-tomcat-6.0.18 "%CATALINA_HOME%\bin\catalina.bat" jpda start ``` I can set JRE_HOME to either my jre folder or my JDK folder and Tomcat will work, but if I remove JRE_HOME and use JAVA_HOME instead, Tomcat will only work if I give it the path to the JDK folder. So what is the difference between JRE and JAVA home, why does Tomcat behave in this manner?

Original source