Reputation: 20624
I am building a project in Java.
I have this error:
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
I have installed a JDK and the folder: C:\Program Files\Java\jre6\lib
is in my system but the file tools.jar
is not there.
Upvotes: 200
Views: 410179
Reputation: 1
I am using java openjdk 12 with Eclipse IDE (Version: 2022-06 (4.24.0) Build id: 20220609-1112) and I placed the tools.jar under the lib folder (C:\Program Files\OpenJDK\jdk-12.0.2\lib) and pom.xml file had it as a dependency for sun tools:
<!-- https://mvnrepository.com/artifact/com.sun/tools -->
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>C:\Program Files\OpenJDK\jdk-12.0.2\lib\tools.jar</systemPath>
</dependency>
This works in jdk 8 and 12, but I will recreate the project without this dependency in my next release version since this maven project was created back in 2018.
Upvotes: 0
Reputation: 1
The latest versions of Java do not have tools.jar in the lib folder. Remove tools.jar entry in environment variables and retry it.
Upvotes: 0
Reputation: 8999
I had the same issue on a linux machine. I was quite frustrated at first, because I have installed both the JDK and JRE. I am using version 1.6, 1.7 and 1.8 simultaneously, and I have played a lot with the alternatives to have everything set properly.
The problem was quite stupid to solve, yet counter-intuitive. While I was using the correct JDK, I paid attention to the path of the tools jar maven complained about - it was expecting it to be
$JAVA_HOME\..\lib\tools.jar
The $JAVA_HOME
variable pointed directly to my jdk
folder (/usr/local/java
which was also the correct $PATH
entry and alternative sym link). It actually searches for the lib
folder outside the java directory, because:
$JAVA_HOME\..\lib\tools.jar
will resolve to
/usr/local/lib/tools.jar
and that is not a valid location.
To solve this, the $JAVA_HOME
variable should instead point to this location /usr/local/java/jre
(assuming the JDK path is /usr/local/java
) -- there is actually jre
folder inside the JDK installation directory, that comes with each JDK. This new setup will cause maven to look at the JRE directory, that is part of the JDK:
$JAVA_HOME\..\lib\tools
which now resolves to
/usr/local/java/jre/../lib/tools.jar
and finally to
/usr/local/java/lib/tools.jar
which is where the tools.jar
really resides.
So, even if you are indeed using the JDK instead of the JRE, the $JAVA_HOME has to point to the JRE. Remember, the OS alternative should still refer to the JDK.
Upvotes: 5
Reputation: 744
It's worth observing that tools.jar has been removed from the JDK since Java 9. https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-055EA9F4-835E-463F-B9E1-9081B3D9E55D
If people are facing this issue compiling a Java program with JDK 9+, you may need to review the dependencies of your projects.
In my case, I was trying to compile a project using AspectJ and the Maven plugin org.codehaus.mojo:aspectj-maven-plugin:1.11
. After searching online, I found an alternative that supports Java 9+: dev.aspectj:aspectj-maven-plugin:1.13.M3
.
Upvotes: 3
Reputation: 1
Step1 Check your jdk is installed. and variable path is setted. Step2 unistall your eclipes and reinstall it. other wise It will continue to be a problem
Upvotes: 0
Reputation: 23463
This happens when the Environment Variable JAVA_HOME is not set, or points to the wrong directory. You can see the value that Ant has by running the command:
ant -diagnostics
And looking for the line that shows java.home
. If you have grep
installed then you can simple run:
ant -diagnostics | grep java.home
To fix the issue, set the JAVA_HOME
Environment Variable to the JDK directory. While setting the variable differs slightly between *nix and Windows, the rest works the same on all operating systems. So it doesn't matter if you use the GUI that Windows provides, or the set
or setx
commands, as long as the value is set prior to calling ant
(if you've set it globally then it must exist before you open the shell/terminal window).
After setting JAVA_HOME
you can run ant -version
, for example, and get the result, e.g.
Apache Ant(TM) version 1.10.8 compiled on May 10 2020
Upvotes: 0
Reputation: 482
Incase it helps, the problem for me was that I had 2 entries in my PATH environment variable which pointed to a location containing the javaw executable.
I cleaned up the variable to make sure that "%JAVA_HOME%\bin" was the only entry referencing a location containing my java executables.
Upvotes: 0
Reputation: 1
I have resolved tool.jar file error recently. I am using eclipse oxygen ide. It works perfectly and easy. Repeat these steps on your system as
Download tool.jar file according to your jre jdk version. Lets suppose tool.jar file is 1.8.0.tool.jar
After donwload 1.8 .0 tool.jar file rename is as as tool.jar
Then go to your jdk installation folder
Then go to lib folder open it
And paste here
You will make this type path. E:\jdk 8\lib\tools.jar
Upvotes: -1
Reputation: 51
As many people mentioned, it looks like you are looking in your JRE instead of the JDK for the tools.jar file.
I would also like to mention that on recent versions of the JDK, there is no more tools.jar file. I downloaded the most recent JDK as of today (JDK version 12) and I could not find any tools.jar. I had to download JDK version 8 (1.8.0) here https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html to get the tools.jar file. I downloaded that version, took the tools.jar file and put it into my recent version's lib folder.
Upvotes: 3
Reputation: 1926
maybe you have updated the JREs in the OS, and the addition has added in the "path" of the environment variables an entry ".../Oracle/jer" that overwrites your JAVA_HOME. try to remove it from the "path" by leaving JAVA_HOME.
Upvotes: 0
Reputation: 13
I have downloaded tools.jar and after that I copied it into path in error message.
C:\Program Files\Java\jdk-11.0.1\bin > paste here tools.jar
After that I have restarted Spring Tool Suit 4 and everything was working. When I was trying to fix that problem I have made new environmental variable: Control Panel / System / Advenced / Environmental variables / new Name : JAVA_HOME Value: C:\Program Files\Java\jdk-11.0.1 But I do not know is it necessary.
Upvotes: 0
Reputation: 46341
This is the solution for Windows: in Computer > Advanced system settings > Advanced > Environment variables..., add this in System variables:
Upvotes: 0
Reputation: 2317
If you're in a RHEL environment the package name containing tools.jar would end with "openjdk-devel".
Upvotes: 0
Reputation: 4886
If you have installed JDK 9.0.1 you will also have this problem as the tools.jar has been deprecated. See migration document.
Upvotes: 24
Reputation: 13
I was also facing the same error. This was removed after setting Java_Home path to C:\Program Files\Java\jdk1.8.0_121. Please ensure bin is not included in the path and no slash is there after jdk1.8.0_121 after you have defined %JAVA_HOME%\bin in the system path variable.
Upvotes: 0
Reputation: 225
For me what's working: I downloaded an old version of Java 1.7
I actually set my JAVA_HOME from C:/program files X86/Java BUT after I installed the 1.7 version I had another Java in program files/Java. And at this moment I found the tools.jar here. Then I changed for this new path and it's working
Upvotes: 0
Reputation: 75
Don't spend too much time looking for tools.jar
. If you get an error like that, don't be upset.
If you already have java JDK 1.5, go to your lib
folder, and the tools.jar
should be available there. Copy and paste it in your ant bin
folder, then try to use the command ant -version
.
You should see the expected result.
Upvotes: 5
Reputation: 7767
it has been solved with me in windows os by setting the JAVA_HOME variable before running as follows:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
Upvotes: 2
Reputation: 41
solving this problem I have simply copied the tools.jar file from C:\Program Files\Java\jre1.8.0_112\lib to C:\Program Files\Java\jdk1.8.0_112\lib so that I have two tools.jar files instead of one and problem disappeared.
Upvotes: 1
Reputation: 2410
Upvotes: 0
Reputation: 1786
You may face similar problem on Ubuntu:
Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar
The problem is with JAVA_HOME that is not set properly.
So, on Ubuntu 14.04 x64 using Java8:
sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Upvotes: 3
Reputation: 2757
I had my JDK_path (C:\Program Files\Java\jdk1.7.0_79
) in my JAVA_HOME
and also the JDK_path\bin in my PATH
. But, still my ant was using the JRE instead of JDK.
The issue was I had C:\ProgramData\Oracle\Java\javapath
before my JDK_path in PATH
variable. I simply moved my JDK_path before the oracle one and the issue solved.
Upvotes: 1
Reputation: 6269
In eclipse window> preferences>Java> Installed JRE, I pointed the directory to the jre directory in the jdk 1.7 and i worked file for me e.g C:\Program Files\Java\jdk1.7.0_71\jre
Upvotes: 1
Reputation: 9976
If you are in Linux you can solve this by installing java on the system:
sudo apt-get install openjdk-7-jdk openjdk-7-jre
Upvotes: 10
Reputation: 81
I had the same problem even after installing Java JDK and set JAVA_HOME
to ..\jdk1.6.0_45\bin
folder.
Ant is still trying to find tools.jar
in C:\Program Files\Java\jre6\lib
folder.
I've fixed it by adding JAVACMD
environment variable and set path for it to java.exe
in the jdk
folder.
In my case it was C:\Program Files\Java\jdk1.6.0_45\bin\java.exe
Upvotes: 2
Reputation: 1
maven-compiler-plugin use jdk ,not jre, tools.jar is in C:\Program Files\Java\jdk1.6.0\lib\tools.jar you must config project JRE System Libary with jdk,not jar. This is the simplest solution.
Upvotes: 0
Reputation: 893
Make sure that both the %JAVA_HOME% and %JAVA_HOME%/bin paths are added to your PATH variable.
All the answers about copying tools.jar into the correct position is a poor idea at best.
Make sure that your IDE can find these jars the way it was designed and intended for.
Upvotes: 1
Reputation: 31337
Install the Java SDK.
Add a System Environment Variable called JAVA_HOME with the value of JDK location.
Go to Control Panel\System and Security\System. Advanced System Settings, Environment Variables, System Variables, New... Example:
Variable Name:JAVA_HOME
Variable Value: C:\Program Files\Java\jdk1.7.0_21
Close/reopen your CMD window so that the new variable takes effect before attempting to re-run the ant command.
Upvotes: 42
Reputation: 31
go to your jdk path where you installed your java
For e.g In my PC JDK installed in the following path
"C:\Program Files\Java\jdk1.7.0_17\";
After go to the lib folder e.g "C:\Program Files\Java\jdk1.7.0_17\lib"
in the lib directory there is tool.jar file
Copy this file and past it in the lib forlder of jre7 directory for e.g
"C:\Program Files\Java\jre7\lib"
Upvotes: 3
Reputation: 327
I had the same problem and copying C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar
to C:\Program Files\Java\jre6\lib\ext
worked for me
Upvotes: 31