Tidak dapat menemukan tools.jar

182

Saya sedang membangun proyek di Jawa.

Saya memiliki kesalahan ini:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

Saya telah menginstal JDK dan folder: C:\Program Files\Java\jre6\libada di sistem saya tetapi file tools.jaritu tidak ada.

olidev
sumber
Saya pikir alat milik JDK bukan milik JRE. Bukan begitu? C: \ Program Files \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo
4
Selain itu, apa yang saya temukan mengejutkan adalah bahwa program itu benar-benar mengatakan di mana itu terlihat. Begitu sedikit program memberikan petunjuk yang bermanfaat ini.
Peter Flynn
Lihat juga pertanyaan duplikat: stackoverflow.com/q/9119479/3328979 Jawabannya ada yang lebih baik daripada di sini.
Arashsoft

Jawaban:

188

Ya, Anda telah mengunduh dan menginstal Java Runtime Environment (JRE) alih-alih Java Development Kit (JDK). Yang terakhir memiliki tools.jar, java.exe, javac.exe, dll.

Duffymo
sumber
7
@olidev memeriksa ini sekarang tetapi masih tidak bisa berhenti menunjukkan masalahnya !! Bagaimana ini bisa menjadi jawaban Anda? Anda telah menyebutkan bahwa Anda telah menginstal jdk dan jre. Saya benar-benar menghadapi masalah yang sama dan masih berlanjut :-(. Perlu tahu bagaimana Anda membuatnya bekerja ??
Mercenary
7
Tambahkan JAVA_HOME dan direktori / bin ke path Anda. Anda sadar bahwa jawaban ini berumur dua tahun, bukan?
duffymo
17
Di ubuntu: # apt-get install default-jdkdan kesalahannya hilang.
Xavi Montero
2
Kunci? JDK. Itu yang punya alat. JRE tidak.
duffymo
2
Belum tentu. Bagi saya sepertinya mereka telah JAVA_HOMEmengatur ke bagian jredalam jdkdaripada ke jdkdirinya sendiri.
ArtOfWarfare
88

Dalam hal ini masih menjadi masalah bagi siapa pun, saya punya sedikit klarifikasi pada jawaban sebelumnya. Saya mengalami masalah yang sama menggunakan semut dengan hanya JDK diinstal. Meskipun, penginstal JDK memberi saya struktur direktori seperti ini:

 Directory of C:\Program Files\Java

05/08/2012  09:43 AM    <DIR>          .
05/08/2012  09:43 AM    <DIR>          ..
05/08/2012  09:46 AM    <DIR>          jdk1.7.0_04
05/08/2012  09:19 AM    <DIR>          jre6
05/08/2012  09:44 AM    <DIR>          jre7
               0 File(s)              0 bytes

dan ketika saya berlari semut, ia mengeluh tidak menemukan tools.jar di bawah subdirektori jre7. Tidak sampai saya set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"bahwa kesalahan hilang.

Blake Mitchell
sumber
7
ini. Terima kasih! (bagi kita yang memiliki berbagai versi jre / jdk diinstal)
Daren Thomas
itu bekerja untuk saya .. sebelumnya saya memberi jalan dengan \ bin juga. itu adalah masalah
John
Terima kasih, saya berharap saya bisa memberi Anda 2 up!
Luke
38
  1. Instal Java SDK .

  2. Tambahkan Variabel Lingkungan Sistem yang disebut JAVA_HOME dengan nilai lokasi JDK.
    Pergi ke Control Panel \ System and Security \ System. Pengaturan Sistem Lanjut, Variabel Lingkungan, Variabel Sistem, Baru ... Contoh:
    Nama Variabel: JAVA_HOME
    Nilai Variabel: C: \ Program Files \ Java \ jdk1.7.0_21

  3. Tutup / buka kembali jendela CMD Anda sehingga variabel baru mulai berlaku sebelum mencoba menjalankan kembali perintah semut.

James Lawruk
sumber
4
Variabel JAVA_HOME memperbaiki semuanya, terima kasih banyak :)
krinn
4
PATH dengan /bin , JAVA_HOME tanpa /bin
Daniel W.
1
Terima kasih, saya sudah menunggu selama berjam-jam ini !!
kcho0
1
Bekerja seperti pesona di Windows8.1
Umar Abbas
BEKERJA SEPERTI PESONA !! TERIMA KASIH
Heidi
28

Aku punya masalah dan sama menyalin C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar untuk C:\Program Files\Java\jre6\lib\ext bekerja untuk saya

Kamlesh Pant
sumber
4
Mencemari instalasi lokal dengan kelas-kelas yang jelas bukan tempatnya di sana dapat menyebabkan Works on my machine syndrome. Itu bahkan jika proses pembangunan formal sudah ada. tools.jar, yang berisi kelas-kelas non-inti untuk mendukung alat dan utilitas di JDK
real_paul
10

Setel JAVA_HOMEvariabel lingkungan Anda ke titik C:\Program Files\Java\jdk1.7.0_02.

Zorayr
sumber
10

Jika Anda berada di Linux, Anda dapat menyelesaikan ini dengan menginstal java pada sistem:

sudo apt-get install openjdk-7-jdk openjdk-7-jre
mimoralea
sumber
Jelas, Anda dapat menggunakan 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' untuk Java 8
schlenger
7

Tidak, sesuai dengan struktur direktori Anda, Anda telah menginstal JRE, bukan JDK. Ada perbedaan.

C:\Program Files\Java\jre6\lib
                      ^^^^

Seharusnya sesuatu seperti:

C:\Program Files\Java\jdk1.6.0_24
Sean Patrick Floyd
sumber
ya kamu benar! tetapi bagaimana saya bisa menghapus jre? terima kasih sebelumnya
olidev
Mulai> Panel Kontrol> Perangkat Lunak (atau serupa, tergantung pada versi Win *)
Sean Patrick Floyd
tetapi tidak ada pilihan seperti itu untuk menghapus jre. Aku baru saja memeriksa!
olidev
@ Joey OK, jika Anda tidak dapat menemukannya, biarkan saja, tidak perlu menghapus instalannya (kecuali untuk memulihkan ruang disk). Anda dapat memiliki banyak JDK dan / atau JRE yang dipasang secara paralel
Sean Patrick Floyd
7

Jika Anda telah menginstal JDK 9.0.1 Anda juga akan memiliki masalah ini karena tools.jar telah ditinggalkan. Lihat dokumen migrasi .

Graham Chiu
sumber
5

Jangan terlalu banyak menghabiskan waktu mencari tools.jar . Jika Anda mendapatkan kesalahan seperti itu, jangan kecewa.

Jika Anda sudah memiliki java JDK 1.5, buka libfolder Anda , dan tools.jarseharusnya tersedia di sana. Salin dan tempel di binfolder semut Anda , lalu coba gunakan perintahant -version .

Anda harus melihat hasil yang diharapkan.

sathiya
sumber
2
Apakah pendekatan ini direkomendasikan?
S_M
4

Saya memiliki masalah yang sama pada mesin linux. Saya agak frustrasi pada awalnya, karena saya telah menginstal JDK dan JRE. Saya menggunakan versi 1.6, 1.7 dan 1.8 secara bersamaan, dan saya telah banyak bermain dengan alternatif untuk mengatur semuanya dengan benar.

Masalahnya cukup bodoh untuk dipecahkan, namun kontra-intuitif. Sementara saya menggunakan JDK yang benar, saya memperhatikan jalannya alat-alat yang dikeluhkan oleh para pakar - ia mengharapkannya menjadi

$JAVA_HOME\..\lib\tools.jar

The $JAVA_HOMEvariabel menunjuk langsung ke saya jdkfolder ( /usr/local/javayang juga benar $PATHmasuk dan link di sym alternatif). Sebenarnya mencari libfolder di luar direktori java, karena:

$JAVA_HOME\..\lib\tools.jar

akan memutuskan untuk

/usr/local/lib/tools.jar

dan itu bukan lokasi yang valid.

Untuk mengatasinya, $JAVA_HOMEvariabel seharusnya menunjuk ke lokasi ini /usr/local/java/jre(dengan asumsi jalur JDK adalah /usr/local/java) - sebenarnya ada jrefolder di dalam direktori instalasi JDK, yang datang dengan masing-masing JDK. Pengaturan baru ini akan menyebabkan pakar melihat direktori JRE, yang merupakan bagian dari JDK:

$JAVA_HOME\..\lib\tools

yang sekarang memutuskan untuk

/usr/local/java/jre/../lib/tools.jar

dan akhirnya

/usr/local/java/lib/tools.jar

di situlah tempat yang tools.jarbenar - benar berada.

Jadi, bahkan dari Anda memang menggunakan JDK alih-alih JRE, $ JAVA_HOME harus menunjuk ke JRE. Ingat, alternatif OS masih harus merujuk ke JDK.

Ivaylo Slavov
sumber
1
Saya punya masalah yang sama dengan windows, gunakan cara Anda memecahkan masalah saya.
Yigang Wu
Saya sudah mencoba semua ini & masih mendapatkan masalah dengan tools.jar. Apakah Randoop sepadan dengan usaha? Berarti apakah itu menghasilkan unit test yang layak? Bagian frustasi dari ini adalah bahwa SETIAP program java lainnya di kotak Windows saya berfungsi dengan baik.
Tn. Smith
@ MrSmith, Apa jalan yang dicari Randoop saat Anda menerima kesalahan. Mungkin Randoop memiliki pengaturan env sendiri yang memberitahukan di mana JRE berada? Juga, apakah Anda membuka kembali shell windows Anda (jika berjalan dari shell) setelah mengubah variabel env Anda?
Ivaylo Slavov
3

pergi ke jalur jdk Anda di mana Anda menginstal java Anda

Untuk misalnya Di PC saya JDK dipasang di jalur berikut

"C: \ Program Files \ Java \ jdk1.7.0_17 \";

Setelah masuk ke folder lib misalnya "C: \ Program Files \ Java \ jdk1.7.0_17 \ lib"

di direktori lib ada file tool.jar

Salin file ini dan lewati di lib forlder direktori jre7 untuk mis

"C: \ Program Files \ Java \ jre7 \ lib"

sandeep
sumber
2

Saya memiliki masalah yang sama bahkan setelah menginstal Java JDK dan mengatur JAVA_HOMEke ..\jdk1.6.0_45\binfolder.

Semut masih berusaha mencari tools.jardi C:\Program Files\Java\jre6\libfolder.
Saya telah memperbaikinya dengan menambahkan JAVACMDvariabel lingkungan dan menetapkan path untuk itu java.exedi jdkfolder.
Dalam kasus saya ituC:\Program Files\Java\jdk1.6.0_45\bin\java.exe

pengguna3243105
sumber
2

Anda mungkin menghadapi masalah serupa di Ubuntu:

Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar

Masalahnya dengan JAVA_HOME yang tidak diatur dengan benar.

Jadi, pada Ubuntu 14.04 x64 menggunakan Java8:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Sasha Zezulinsky
sumber
2

telah diselesaikan dengan saya di os windows dengan mengatur variabel JAVA_HOME sebelum menjalankan sebagai berikut:

atur JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_111

Ramy Feteha
sumber
Saya harus memaksakan ini. Ant 10+ sedang mencari JDK dalam variabel yang tidak diketahui. Saya tidak bisa menemukan dari mana mendapatkan JDK, tetapi ketika saya bisa di command line dan memaksa JAVA HOME, itu berhasil.
Cummings
2

Seperti yang banyak orang sebutkan, sepertinya Anda mencari di JRE alih-alih JDK untuk file tools.jar.

Saya juga ingin menyebutkan bahwa pada versi terbaru dari JDK, tidak ada lagi file tools.jar. Saya mengunduh JDK terbaru pada hari ini (JDK versi 12) dan saya tidak dapat menemukan tools.jar. Saya harus mengunduh JDK versi 8 (1.8.0) di sini https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html untuk mendapatkan file tools.jar. Saya mengunduh versi itu, mengambil file tools.jar dan memasukkannya ke folder lib versi terbaru saya.

alt440
sumber
1

Pastikan bahwa% JAVA_HOME% dan% JAVA_HOME% / lintasan bin ditambahkan ke variabel PATH Anda.

Semua jawaban tentang menyalin alat. Masuk ke posisi yang benar adalah ide yang buruk.

Pastikan bahwa IDE Anda dapat menemukan toples ini seperti yang dirancang dan dimaksudkan untuknya.

Jørgen Skår Fischer
sumber
1

Di jendela gerhana> preferensi> Java> JRE Terinstal, saya mengarahkan direktori ke direktori jre di jdk 1.7 dan saya bekerja file untuk saya misalnya C: \ Program Files \ Java \ jdk1.7.0_71 \ jre

Vimal Basdeo
sumber
1

Saya punya JDK_path ( C:\Program Files\Java\jdk1.7.0_79) di saya JAVA_HOMEdan juga JDK_path \ bin di sayaPATH . Tapi, semut saya masih menggunakan JRE bukan JDK.

Masalahnya adalah saya miliki C:\ProgramData\Oracle\Java\javapathsebelum JDK_path saya dalam PATHvariabel. Saya hanya memindahkan JDK_path saya sebelum oracle dan masalah terpecahkan.

Arashsoft
sumber
1

mengatasi masalah ini, saya cukup menyalin file tools.jar dari C: \ Program Files \ Java \ jre1.8.0_112 \ lib ke C: \ Program Files \ Java \ jdk1.8.0_112 \ lib sehingga saya memiliki dua tools.jar file bukan satu dan masalah hilang.

estudiante
sumber
0
Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

jika Anda telah menginstal jdk maka

..Java/jdkx.x.x

folder harus ada di sana sehingga di kios itu dan berikan path lengkap seperti

C:\Program Files\Java\jdk1.6.0\lib\tools.jar
Nirmal- Think di luar
sumber
0

Pastikan classpath Anda diset dengan benar dan menunjuk ke versi JDK yang benar yang telah Anda instal. Juga, apakah Anda menggunakan Open JDK? Saya memiliki masalah ini sebelumnya setelah saya mencoba untuk beralih dari JDK terbuka ke Suns JDK. Ini adalah contoh bagaimana masalah itu bisa diperbaiki.

John Kane
sumber
0

maven-compiler-plugin menggunakan jdk, bukan jre, tools.jar ada di C: \ Program Files \ Java \ jdk1.6.0 \ lib \ tools.jar Anda harus mengkonfigurasi proyek JRE System Libary dengan jdk, bukan jar. Ini adalah solusi paling sederhana.

living.li
sumber
0
  • Klik kanan pada file semut Anda
  • Buka "Jalankan sebagai" lalu klik "Ant Build ..."
  • Buka tab "JRE"
  • Pilih JDK dan bukan JRE
RotS
sumber
0

Bagi saya yang berfungsi: Saya mengunduh Java versi lama

Saya sebenarnya mengatur JAVA_HOME saya dari file C: / program X86 / Java TETAPI setelah saya menginstal versi 1.7, saya memiliki Java lain di file program / Java. Dan pada saat ini saya menemukan alat-alatnya. Masuk di sini. Lalu saya berubah untuk jalur baru ini dan itu berfungsi

Florent Giraud
sumber
0

Saya juga menghadapi kesalahan yang sama. Ini dihapus setelah mengatur Java_Home path ke C: \ Program Files \ Java \ jdk1.8.0_121. Harap pastikan bin tidak termasuk dalam lintasan dan tidak ada garis miring setelah jdk1.8.0_121 setelah Anda menetapkan% JAVA_HOME% \ bin dalam variabel lintasan sistem.

Nits
sumber
0

Jika Anda berada di lingkungan RHEL nama paket yang berisi tools.jar akan diakhiri dengan "openjdk-devel".

TastyWheat
sumber
0

Ini adalah solusi untuk Windows: di Komputer> Pengaturan sistem lanjutan> Lanjutan> Variabel lingkungan ... , tambahkan ini dalam variabel Sistem :

masukkan deskripsi gambar di sini

Basj
sumber
0

Saya telah mengunduh tools.jar dan setelah itu saya menyalinnya ke path dalam pesan kesalahan.

C: \ Program Files \ Java \ jdk-11.0.1 \ bin> rekatkan di sini tools.jar

Setelah itu saya me-restart Spring Tool Suit 4 dan semuanya bekerja. Ketika saya mencoba untuk memperbaiki masalah itu, saya telah membuat variabel lingkungan baru: Control Panel / System / Advished / variabel Lingkungan / baru Nama: JAVA_HOME Nilai: C: \ Program Files \ Java \ jdk-11.0.1 Tapi saya tidak tahu apakah itu perlu.

astatyzm
sumber
0

mungkin Anda telah memperbarui JRE di OS, dan penambahan telah ditambahkan di "path" variabel lingkungan entri "... / Oracle / jer" yang menimpa JAVA_HOME Anda. coba hapus dari "jalan" dengan meninggalkan JAVA_HOME.

pagurix
sumber
0

Jika itu membantu, masalah bagi saya adalah bahwa saya memiliki 2 entri dalam variabel lingkungan PATH saya yang menunjuk ke lokasi yang mengandung file javaw yang dapat dieksekusi.

Saya membersihkan variabel untuk memastikan bahwa "% JAVA_HOME% \ bin" adalah satu-satunya entri yang merujuk lokasi yang berisi file executable java saya.

GarethPN
sumber