48

I am putting together a dev environment for a Java program and after the first try of my Ant build scripts I got this error:

Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk/lib/tools.jar

While the path to the jdk is correct, the tools.jar really wasn't there. Is it actually supposed to be there or did I get some config/installation thing wrong?

Joseph Mansfield
  • 108,238
  • 20
  • 242
  • 324
Genadinik
  • 18,153
  • 63
  • 185
  • 284
  • It looks like you have JRE-only Java installed. See http://openjdk.java.net/install/ perhaps. What OS do you have there? – martin clayton Apr 05 '11 at 23:55
  • OS is Ubuntu. At first I installed only JRE then I installed JDK. They could possibly be mis-configured :) – Genadinik Apr 05 '11 at 23:58
  • possible duplicate of [Unable to locate tools.jar](http://stackoverflow.com/questions/5730815/unable-to-locate-tools-jar) – fcm Jul 23 '13 at 16:52

10 Answers10

66

It seems like you can have Java installed in /usr/lib/jvm/java-6-openjdk but only have the JRE, not the JDK. This fixed it for me:

sudo apt-get install openjdk-6-jdk

Kevin Qi
  • 3,220
  • 2
  • 22
  • 24
19

Note: On CentOS / RHEL installing java-1.x.0-openjdk will not be enough. Also install java-1.x.0-openjdk-devel.

Salieri
  • 782
  • 6
  • 17
14

It's there on my machine. I'm running Sun JDK 1.6.0_21 on Windows XP SP3.

Are you sure you have the JDK? Is it possible that you only have the JRE?

duffymo
  • 305,152
  • 44
  • 369
  • 561
  • I have both, jdk and jre. but that particular directory got downloaded and extracted as jdk which makes me assume it is jdk lol. – Genadinik Apr 05 '11 at 23:57
  • 1
    To be more specific, add this to .bashrc `export JAVA_HOME=/usr/bin` – gouravtiwari21 Feb 12 '13 at 16:49
  • To be yet more specific, if you're running a build script that invokes an Ant build, you may need to actually set the `export` in your `~/.bashrc`. I found just doing it in the terminal before running one particular `build.sh` didn't solve the problem. I also set `export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64` rather than just `/usr/`; `JAVA_HOME` should be the install directory of the JDK, since Ant will (I think) look in `JAVA_HOME/bin` and `JAVA_HOME/lib`. – orlade Aug 03 '14 at 02:07
  • 7
    How can this be the accepted answer? It's not even an answer, per se. – Heath Hunnicutt Jul 19 '16 at 22:17
  • I was just thinking the smae as @HeathHunnicutt, it seems everywhere I go to find answers to this question I'm met with "you must only have JRE installed" I know I have `/usr/lib/jvm/java-11-openjdk-amd64/` so wtf – Jamie Lindsey Jan 19 '19 at 16:17
5

On Debian, after installing Ant with apt-get install ant, I've encountered the same error when running it:

Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-6-openjdk-amd64/lib/tools.jar

Indeed, there's no mention of any tools.jar anywhere in /usr/lib, although /usr/lib/jvm/java-6-openjdk-amd64 itself does exist.


https://packages.debian.org/search?searchon=contents&keywords=java-6-openjdk-amd64%2Flib%2Ftools.jar

As per the search above, java-6-openjdk-amd64/lib/tools.jar appears to be part of openjdk-6-jdk, which indeed didn't get installed with ant (since it's only marked as suggested (https://packages.debian.org/wheezy/ant)).

apt-get install openjdk-6-jdk

cnst
  • 25,870
  • 6
  • 90
  • 122
5
apt install defalut-jdk # this doesn't contain some file, like tools.jar...
apt install openjdk-8-jdk # this contains all files.
Long
  • 155
  • 1
  • 4
  • 3
    Even if your answer is really helpful I believe that it can be improved by adding some explanation. Follow the link to know more [how to write a good answer](https://stackoverflow.com/help/how-to-answer) – Yuriy Tsarkov Nov 02 '18 at 16:51
4

On Ubuntu I've just need to install JDK sudo apt-get install openjdk-7-jdk

..and you can always search for all available versions with

$ sudo apt-cache search openjdk | grep ^openjdk

From the website https://openjdk.java.net/install/ we can read

The openjdk-7-jre package contains just the Java Runtime Environment. If you want to develop Java programs then install the openjdk-7-jdk package.

sobi3ch
  • 2,555
  • 2
  • 31
  • 41
3

Try the following:

% sudo apt-get install sun-java6-jdk

% sudo update-alternatives --config java

select the option that has the path

/usr/lib/jvm/java-6-sun/jre/bin/java

Worked for me on an ubuntu 10.4

u can try to put your JAVA_HOME also, as follows:

% sudo export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

Community
  • 1
  • 1
2

Installing the jdk-6u45-linux-x64.bin (from the oracle.com site) via unzip does not result in a tools.jar. I guess that file is created by the "make-jpkg" script. Once I did that, and installed the resulting .deb file, everything was fine. I really hate oracle's lawyers.

mcr
  • 4,615
  • 2
  • 31
  • 30
2

Even if you have jdk installed, you'll need to redirect JAVA_HOME to point to it.

Here's one weird trick you can put into your .profile to set JAVA HOME properly, no matter which java you have:

export JAVA_HOME=$(dirname $(dirname $(readlink -e /usr/bin/java)))
# Test for jdk installed above jre
if [ -x $JAVA_HOME/../bin/java ]; then export JAVA_HOME=$(dirname $JAVA_HOME); fi
Edward Falk
  • 9,991
  • 11
  • 77
  • 112
2

On Ubuntu I've fixed this problem by installing package

openjdk-7-jre-lib

tools.jar appeared after that.

(I know this is an old post, but comment in hope that it will be helpful for somebody lurking for answer like I was today.)

Valia Walsk
  • 21
  • 1
  • 5