Search code examples
javaapachetomcatwindows-7java-home

Tomcat is not running even though JAVA_HOME path is correct


When I am trying to run tomcat using startup.bat I get the following error,

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

But then I try C:\>echo %java_home% and I get the following result

C:\Program Files\Java\jdk1.6.0_25\bin

I have even tried setting JAVA_HOME manually to system variable list, but this issue remains.

What can I do to solve it?

I am using Windows 7.


Update

After setting a new system variable named JAVA_HOME and setting its path to "C:\Program Files\Java\jdk1.6.0_25\bin\", I tried the start up script again and this time I get a new error.

D:\Work\apache-tomcat-6.0.35\bin>startup.bat
Files\Java\jdk1.6.0_25"" was unexpected at this time.

Any idea what this error means?

I even tried setting the path to "C:\Program Files\Java\jdk1.6.0_25\"(that is without bin) but same error occurs.


Solution

  • Try installing java somewhere else - in a directory without spaces. Set again the JAVA_HOME variable and try again. I remember Tomcat had some problems on Window XP with spaces if any variables it was using while starting contained spaces. Maybe it's similar with Windows 7.

    I remember I had to change some lines in Tomcat java classes which were handling Tomcat startup.

    @Edit: Luciano beat me to noticing it but you should also remove bin from JAVA_HOME

    @Edit: I also remember that another fix (didn't test it myself, though) was to set JAVA_HOME to the shorthand version e.g. C:\Progra~1\Java\jdk1.6.0_25