Ant needs tools.jar and unable to find it

2019-03-08 10:11发布

问题:

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?

回答1:

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?



回答2:

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



回答3:

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



回答4:

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



回答5:

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::")



回答6:

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



回答7:

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.



回答8:

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


回答9:

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.)



回答10:

apt install defalut-jdk # this doesn't contain some file, like tools.jar...
apt install openjdk-8-jdk # this contains all files.