39

I have installed tomcat7 (using apt-get install) and whenever I want to start tomcat7 it says :

* no JDK found - please set JAVA_HOME

I have set JAVA_HOME in my bash.bashrc and also in ~/.bashrc and when I issue echo $JAVA_HOME I clearly see that this variable is pointing to my jdk's root folder. Can someone help me with this please?

Thanks

  • 2
    This helped me to find where I can tell tomcat7 what JDK to use. – icedwater Jul 23 '13 at 4:00
  • Same here. Now I know where tomcat looks for JAVA_HOME. – slayedbylucifer Oct 28 '13 at 5:40
76

You can try this:

Just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command below.

gksudo gedit /etc/default/tomcat7

When the file opens, uncomment the line that sets the JAVA_HOME variable.

enter image description here

Save and restart tomcat7 server.

  • Note that upgrading to JDK 7 will break this answer. Using a symbolic link without the version number will allow upgrades without invalidating environment variables. – Dave Jarvis Oct 24 '14 at 19:14
  • 1
    Also works for tomcat8, just replace tomcat7 strings by tomcat8. – nachtigall Mar 9 '17 at 11:04
8

Tomcat will not actually use your JAVA_HOME environmente variable, but look in some predefined locations and in the JAVA_HOME variable set inside the startup script, as other answers point out. If you don't like messing with the tomcat startup script, you could create a symlink for your preferred java installation, which will be picked up by tomcat.

For example:

ln -s /usr/lib/jvm/java-8-oracle /usr/lib/jvm/default-java
  • 2
    This conflicts with package default-jre-headless – Tino Feb 6 '16 at 0:56
  • Did this and it worked, thank you. – Sabuncu Apr 8 '16 at 11:47
5

Open terminal

echo $JAVA_HOME

Copy the result. Then

sudo -H gedit /etc/default/tomcat7

Replace #JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk with the output you copied from $JAVA_HOME.

2

Just add following line in /etc/default/tomcat7 at where JAVA_HOME variable is defined

JAVA_HOME=/usr/lib/jvm/java-7-oracle

then run command

sudo service tomcat7 restart
0

Adding to the answer of Mitch (the accepted answer above), check your /usr/lib/jvm/ directory. Usually, java is installed there itself.

You might have oracle java installed or you might have a latest version of java installed. Just checkout the directories at /usr/lib/jvm/ and add the one your java is in.

For me, it was:

/usr/lib/jvm/java-8-oracle

So, replace

#JAVA_HOME=/some/directory

with

#JAVA_HOME=/usr/lib/jvm/java-8-oracle

did the job for me.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.