ไม่สามารถระบุตำแหน่ง tools.jar


182

ฉันกำลังสร้างโครงการใน Java

ฉันมีข้อผิดพลาดนี้:

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

ฉันได้ติดตั้ง JDK และโฟลเดอร์: C:\Program Files\Java\jre6\libอยู่ในระบบของฉัน แต่ไฟล์tools.jarไม่อยู่ที่นั่น


ฉันคิดว่าเครื่องมือเป็นของ JDK ไม่ใช่ของ JRE ไม่เป็นเช่นนั้น? C: \ Program Files \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo

4
นอกเหนือจากสิ่งที่ฉันพบที่น่าประหลาดใจก็คือโปรแกรมพูดจริงว่ามันอยู่ตรงไหน โปรแกรมไม่กี่โปรแกรมที่ให้เบาะแสที่มีประโยชน์นี้
ปีเตอร์ฟลินน์

ดูคำถามที่ซ้ำกัน: stackoverflow.com/q/9119479/3328979คำตอบมีดีกว่าที่นี่
Arashsoft

คำตอบ:


188

ใช่คุณได้ดาวน์โหลดและติดตั้ง Java Runtime Environment (JRE) แทน Java Development Kit (JDK) ส่วนหลังมี tools.jar, java.exe, javac.exe และอื่น ๆ


7
@olidev กำลังตรวจสอบเรื่องนี้อยู่ แต่ก็ยังไม่สามารถหยุดชี้ปัญหาได้ นี่เป็นคำตอบของคุณได้อย่างไร? คุณได้พูดไปแล้วว่าคุณได้ติดตั้ง jdk และ jre แล้ว จริง ๆ แล้วฉันกำลังเผชิญกับปัญหาที่คล้ายกันและยังคงดำเนินต่อไป :-( ต้องการทราบว่าคุณทำงานได้อย่างไร?
Mercenary

7
เพิ่ม JAVA_HOME และไดเร็กทอรี / bin ไปยังพา ธ ของคุณ คุณรู้ไหมว่าคำตอบนี้มีอายุสองขวบใช่มั้ย
duffymo

17
ใน ubuntu: # apt-get install default-jdkและข้อผิดพลาดจะหายไป
Xavi Montero

2
ที่สำคัญ? JDK นั่นคือสิ่งที่มีเครื่องมือ JRE ไม่
duffymo

2
ไม่จำเป็น. ดูเหมือนว่าพวกเขาอาจJAVA_HOMEตั้งค่าไว้jreด้านในjdkแทนที่จะเป็นของjdkตัวเอง
ArtOfWarfare

88

ในกรณีที่ปัญหานี้ยังคงเป็นปัญหาสำหรับทุกคนฉันมีคำชี้แจงเล็กน้อยเกี่ยวกับคำตอบก่อนหน้า ฉันพบปัญหาเดียวกันนี้โดยใช้ ant ที่ติดตั้ง JDK เท่านั้น แม้ว่าตัวติดตั้ง JDK จะให้โครงสร้างไดเรกทอรีเช่นนี้:

 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

และเมื่อฉันวิ่งมดมันก็บ่นว่าไม่ได้หา tools.jar ภายใต้ไดเรกทอรีย่อย jre7 มันไม่ใช่จนกระทั่งฉันset "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"ว่าข้อผิดพลาดหายไป


7
นี้. ขอบคุณ! (สำหรับพวกเราที่มี JRE ต่างๆ / รุ่น jdk ติดตั้ง)
Daren โทมัส

มันใช้งานได้สำหรับฉัน .. ก่อนหน้านี้ฉันให้เส้นทางกับ \ bin ด้วยเช่นกัน .. นั่นคือปัญหา
John

ขอบคุณฉันหวังว่าฉันจะให้คุณ 2 ups!
ลุค

38
  1. การติดตั้งJava SDK

  2. เพิ่มตัวแปรสภาพแวดล้อมของระบบที่เรียกว่าJAVA_HOMEด้วยค่าของตำแหน่ง JDK
    ไปที่ Control Panel \ System และ Security \ System การตั้งค่าระบบขั้นสูงตัวแปรสภาพแวดล้อมตัวแปรระบบใหม่ ... ตัวอย่าง:
    ชื่อตัวแปร: JAVA_HOME
    ค่าตัวแปร: C: \ Program Files \ Java \ jdk1.7.0_21

  3. ปิด / เปิดหน้าต่าง CMD ของคุณอีกครั้งเพื่อให้ตัวแปรใหม่มีผลบังคับใช้ก่อนที่จะพยายามเรียกใช้คำสั่ง ant อีกครั้ง


4
ตัวแปร JAVA_HOME ทุกอย่างคงที่, ขอบคุณมาก :)
krinn

4
PATH ด้วย /bin , JAVA_HOME โดยไม่ต้อง /bin
Daniel W.

1
ขอบคุณฉัน Loooking สำหรับชั่วโมงนี้ !!
kcho0

1
ทำงานได้อย่างมีเสน่ห์ใน Windows8.1
Umar Abbas

ทำงานเหมือนมีเสน่ห์ !! ขอบคุณ
Heidi

28

ฉันมีปัญหาเดียวกันและ คัดลอก C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar เพื่อ C:\Program Files\Java\jre6\lib\ext ทำงานให้ฉัน


4
ก่อให้เกิดมลพิษกับการติดตั้งในพื้นที่ด้วยชั้นเรียนที่ไม่ได้อยู่ในนั้นอย่างชัดเจนสามารถนำไปสู่การทำงานในกลุ่มอาการของเครื่องจักร นั่นคือแม้ว่ากระบวนการสร้างอย่างเป็นทางการอยู่ในสถานที่ tools.jar ซึ่งมีคลาสที่ไม่ใช่คอร์เพื่อรองรับเครื่องมือและยูทิลิตี้ใน JDK
real_paul

10

การตั้งค่าของตัวแปรด้านสิ่งแวดล้อมที่จะชี้ไปที่JAVA_HOMEC:\Program Files\Java\jdk1.7.0_02


10

หากคุณอยู่ใน Linux คุณสามารถแก้ปัญหานี้ได้โดยติดตั้ง java บนระบบ:

sudo apt-get install openjdk-7-jdk openjdk-7-jre

เห็นได้ชัดว่าคุณสามารถใช้ 'sudo apt-get install openjdk-8-jdk openjdk-8-jre' สำหรับ Java 8
schlenger

7

ไม่ตามโครงสร้างไดเรกทอรีของคุณคุณได้ติดตั้ง JRE ไม่ใช่ JDK มีความแตกต่าง

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

มันควรจะเป็นสิ่งที่ชอบ:

C:\Program Files\Java\jdk1.6.0_24

ใช่คุณถูก! แต่ฉันจะถอนการติดตั้ง jre ได้อย่างไร? ขอบคุณล่วงหน้า
olidev

เริ่ม> แผงควบคุม> ซอฟต์แวร์ (หรือคล้ายกันขึ้นอยู่กับรุ่น Win *)
Sean Patrick Floyd

แต่ไม่มีตัวเลือกเช่นนั้นเพื่อลบ jre ฉันเพิ่งตรวจสอบ!
olidev

@Joesy ตกลงถ้าคุณหาไม่เจอให้ทิ้งไว้ไม่จำเป็นต้องทำการถอนการติดตั้ง (ยกเว้นการกู้คืนพื้นที่ดิสก์) คุณสามารถติดตั้ง JDK และ / หรือ JREs หลายตัวพร้อมกัน
Sean Patrick Floyd

7

หากคุณติดตั้ง JDK 9.0.1 คุณจะประสบปัญหานี้เนื่องจาก tools.jar เลิกใช้แล้ว ดูการโยกย้ายเอกสาร


5

tools.jarอย่าใช้เวลามากเกินไปมองหา หากคุณได้รับข้อผิดพลาดเช่นนั้นอย่าอารมณ์เสีย

หากคุณมี java JDK 1.5 อยู่แล้วให้ไปที่libโฟลเดอร์ของคุณและtools.jarควรจะอยู่ที่นั่น คัดลอกและวางไว้ในมดของคุณbinant -versionโฟลเดอร์แล้วพยายามที่จะใช้คำสั่ง

คุณควรเห็นผลลัพธ์ที่คาดหวัง


2
วิธีนี้จะแนะนำหรือไม่
S_M

4

ฉันมีปัญหาเดียวกันในเครื่อง linux ฉันค่อนข้างผิดหวังในตอนแรกเพราะฉันได้ติดตั้งทั้ง JDK และ JRE ฉันใช้เวอร์ชั่น 1.6, 1.7 และ 1.8 พร้อมกันและฉันได้เล่นกับตัวเลือกมากมายเพื่อให้ทุกอย่างถูกตั้งค่าอย่างถูกต้อง

ปัญหาค่อนข้างโง่ที่จะแก้ปัญหา แต่ก็ตอบโต้ได้ง่าย ในขณะที่ฉันใช้ JDK ที่ถูกต้องฉันให้ความสนใจกับเส้นทางของเครื่องมือ jar maven ที่บ่นเกี่ยวกับ - มันคาดหวังว่ามันจะเป็น

$JAVA_HOME\..\lib\tools.jar

$JAVA_HOMEตัวแปรชี้โดยตรงกับฉันjdkโฟลเดอร์ ( /usr/local/javaซึ่งเป็นที่ถูกต้อง$PATHรายการและการเชื่อมโยงทางเลือก SYM) มันค้นหาlibโฟลเดอร์ภายนอกไดเรกทอรี java เพราะ:

$JAVA_HOME\..\lib\tools.jar

จะแก้ไขให้

/usr/local/lib/tools.jar

และนั่นไม่ใช่ตำแหน่งที่ถูกต้อง

เพื่อแก้ปัญหานี้$JAVA_HOMEตัวแปรควรชี้ไปที่ตำแหน่งนี้/usr/local/java/jre(สมมติว่าเป็นเส้นทาง JDK /usr/local/java) - จริงๆแล้วมีjreโฟลเดอร์อยู่ในไดเรกทอรีการติดตั้ง JDK ที่มาพร้อมกับแต่ละ JDK การตั้งค่าใหม่นี้จะทำให้ maven ดูที่ไดเรกทอรี JRE ซึ่งเป็นส่วนหนึ่งของ JDK:

$JAVA_HOME\..\lib\tools

ซึ่งตอนนี้แก้ไขให้

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

และในที่สุดก็ถึง

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

ซึ่งเป็นที่ที่ผู้tools.jarอยู่อาศัยจริงๆ

ดังนั้นแม้คุณจะใช้ JDK แทน JRE แน่นอน $ JAVA_HOME จะต้องชี้ไปที่ JRE โปรดจำไว้ว่าทางเลือกระบบปฏิบัติการยังควรอ้างถึง JDK


1
ฉันได้รับปัญหาเดียวกันกับ windows ใช้วิธีของคุณเพื่อแก้ไขปัญหาของฉัน
Yigang Wu

ฉันได้ลองทั้งหมดนี้แล้ว แต่ยังพบปัญหากับ tools.jar Randoop คุ้มค่ากับความพยายามหรือไม่? มันหมายถึงการสร้างการทดสอบหน่วยที่ดี? ส่วนที่น่าผิดหวังของเรื่องนี้คือทุกโปรแกรม java อื่น ๆ ในกล่อง Windows ของฉันทำงานได้ดี
นายสมิ ธ

@MrSmith เส้นทางที่ Randoop ค้นหาคืออะไรเมื่อคุณได้รับข้อผิดพลาด บางที Randoop อาจมีการตั้งค่า env ของตัวเองเพื่อบอกว่า JRE อยู่ที่ไหน คุณเปิดหน้าต่างเชลล์อีกครั้ง (ถ้าทำงานจากเชลล์) หลังจากเปลี่ยนตัวแปร env ของคุณหรือไม่
Ivaylo Slavov

3

ไปที่เส้นทาง jdk ของคุณที่คุณติดตั้งจาวาของคุณ

สำหรับเช่นใน PC ของฉัน JDK ติดตั้งในเส้นทางต่อไปนี้

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

หลังจากไปที่โฟลเดอร์ lib เช่น "C: \ Program Files \ Java \ jdk1.7.0_17 \ lib"

ในไดเร็กทอรี lib มีไฟล์ tool.jar

คัดลอกไฟล์นี้และวางไว้ใน lib forlder ของไดเรกทอรี jre7 เช่น

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


2

ฉันมีปัญหาเดียวกันแม้หลังจากติดตั้ง Java JDK และตั้งJAVA_HOMEเป็น..\jdk1.6.0_45\binโฟลเดอร์

Ant ยังคงพยายามค้นหาtools.jarในC:\Program Files\Java\jre6\libโฟลเดอร์
ฉันแก้ไขโดยการเพิ่มJAVACMDตัวแปรสภาพแวดล้อมและกำหนดเส้นทางให้java.exeในjdkโฟลเดอร์
ในกรณีของฉันมันเป็นC:\Program Files\Java\jdk1.6.0_45\bin\java.exe


2

คุณอาจประสบปัญหาคล้ายกันใน Ubuntu:

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

ปัญหาเกิดขึ้นกับ JAVA_HOME ที่ตั้งค่าไว้ไม่ถูกต้อง

ดังนั้นบน Ubuntu 14.04 x64 โดยใช้ Java8:

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

2

มันได้รับการแก้ไขกับฉันใน windows os โดยการตั้งค่าตัวแปร JAVA_HOME ก่อนที่จะทำงานดังนี้:

ตั้ง JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_111


ฉันต้องบังคับสิ่งนี้ Ant 10+ กำลังมองหา JDK ในตัวแปรที่ไม่รู้จัก ฉันไม่สามารถหาตำแหน่งที่จะรับ JDK ได้ แต่เมื่อฉันสามารถใช้บรรทัดคำสั่งและบังคับให้ JAVA HOME ทำงานได้
คัมมิงส์

2

อย่างที่หลายคนพูดถึงดูเหมือนว่าคุณกำลังมองหา JRE ของคุณแทนที่จะเป็น JDK สำหรับไฟล์ tools.jar

ฉันอยากจะพูดถึงว่าใน JDK รุ่นล่าสุดไม่มีไฟล์ tools.jar อีกต่อไป ฉันดาวน์โหลด JDK ล่าสุด ณ วันนี้ (JDK เวอร์ชัน 12) และฉันไม่พบเครื่องมือใด ๆ ฉันต้องดาวน์โหลด JDK เวอร์ชัน 8 (1.8.0) ที่นี่https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlเพื่อรับไฟล์ tools.jar ฉันดาวน์โหลดเวอร์ชันนั้นเอาไฟล์ tools.jar และใส่ลงในโฟลเดอร์ lib ของเวอร์ชันล่าสุด


1

ตรวจสอบให้แน่ใจว่าได้เพิ่มเส้นทาง% JAVA_HOME% และ% JAVA_HOME% / bin ไว้ในตัวแปร PATH ของคุณ

คำตอบทั้งหมดเกี่ยวกับการคัดลอก tools.jar ไปยังตำแหน่งที่ถูกต้องเป็นแนวคิดที่ดีที่สุด

ตรวจสอบให้แน่ใจว่า IDE ของคุณสามารถค้นหาขวดเหล่านี้ได้ตามวิธีการออกแบบและใช้งาน


1

ในหน้าต่าง eclipse> การกำหนดค่าตามความชอบ> Java> JRE ที่ติดตั้งฉันชี้ไดเร็กทอรีไปยังไดเร็กทอรี jre ใน jdk 1.7 และฉันทำงานไฟล์ให้ฉันเช่น C: \ Program Files \ Java \ jdk1.7.0_71 \ jre


1

ฉันมี JDK_path ( C:\Program Files\Java\jdk1.7.0_79) ของฉันในของฉันJAVA_HOMEและยัง JDK_path \ bin ในของฉันPATHในของฉัน แต่มดของฉันยังใช้ JRE แทน JDK

ปัญหาคือฉันมีC:\ProgramData\Oracle\Java\javapathก่อน JDK_path ของฉันในPATHตัวแปร ฉันแค่ย้าย JDK_path ของฉันก่อนที่ oracle one และปัญหาจะได้รับการแก้ไข


1

การแก้ปัญหานี้ฉันเพิ่งคัดลอกไฟล์ tools.jar จาก C: \ Program Files \ Java \ jre1.8.0_112 \ lib ไปยัง C: \ Program Files \ Java \ jdk1.8.0_112 \ lib เพื่อให้ฉันมีสอง tools.jar ไฟล์แทนไฟล์เดียวและปัญหาหายไป


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

หากคุณติดตั้ง jdk แล้ว

..Java/jdkx.x.x

โฟลเดอร์จะต้องมีอยู่ในนั้นและให้เส้นทางเต็มเช่น

C:\Program Files\Java\jdk1.6.0\lib\tools.jar

0

ตรวจสอบให้แน่ใจว่า classpath ของคุณถูกตั้งค่าอย่างถูกต้องและชี้ไปยังรุ่นที่ถูกต้องของ JDK ที่คุณติดตั้ง คุณใช้ Open JDK ด้วยหรือไม่ ฉันเคยมีปัญหานี้มาก่อนหลังจากพยายามย้ายจาก open JDK เป็น Suns JDK นี่คือตัวอย่างของวิธีการแก้ไขปัญหานั้น


0

maven-compiler-plugin ใช้ jdk ไม่ใช่ jre, tools.jar อยู่ใน C: \ Program Files \ Java \ jdk1.6.0 \ lib \ tools.jar คุณต้องตั้งค่าโปรเจ็กต์ JRE System Libary ด้วย jdk ไม่ใช่ jar นี่คือทางออกที่ง่ายที่สุด


0
  • คลิกขวาที่ไฟล์ ant ของคุณ
  • ไปที่ "Run as" จากนั้นคลิกที่ "Ant Build ... "
  • ไปที่แท็บ "JRE"
  • เลือก JDK ไม่ใช่ JRE

0

สำหรับฉันการทำงาน: ฉันดาวน์โหลด Java 1.7 เวอร์ชันเก่า

ฉันตั้งค่า JAVA_HOME จริง ๆ จาก C: / program files X86 / Java BUT หลังจากติดตั้ง 1.7 version ฉันมี Java อีกตัวในไฟล์โปรแกรม / Java และในขณะนี้ฉันพบ tools.jar ที่นี่ จากนั้นฉันเปลี่ยนเส้นทางใหม่นี้และมันใช้งานได้


0

ฉันก็ต้องเผชิญกับข้อผิดพลาดเดียวกัน สิ่งนี้ถูกลบออกหลังจากตั้งค่าเส้นทาง Java_Home เป็น C: \ Program Files \ Java \ jdk1.8.0_121 โปรดตรวจสอบว่า bin ไม่ได้รวมอยู่ในพา ธ และไม่มีเครื่องหมายสแลชอยู่หลังจาก jdk1.8.0_121 หลังจากคุณกำหนด% JAVA_HOME% \ bin ในตัวแปรพา ธ ของระบบ


0

หากคุณอยู่ในสภาพแวดล้อม RHEL ชื่อแพคเกจที่มี tools.jar จะลงท้ายด้วย "openjdk-devel"


0

นี่คือวิธีแก้ปัญหาสำหรับ Windows: ในคอมพิวเตอร์> การตั้งค่าระบบขั้นสูง> ขั้นสูง> ตัวแปรสภาพแวดล้อม ...เพิ่มสิ่งนี้ในตัวแปรระบบ :

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันดาวน์โหลด tools.jar และหลังจากนั้นฉันก็คัดลอกมันไปยังพา ธ ในข้อความแสดงข้อผิดพลาด

C: \ Program Files \ Java \ jdk-11.0.1 \ bin> วางที่นี่ tools.jar

หลังจากนั้นฉันได้รีสตาร์ท Spring Tool Suit 4 และทุกอย่างทำงานได้ เมื่อฉันพยายามที่จะแก้ไขปัญหานั้นฉันได้สร้างตัวแปรด้านสิ่งแวดล้อมใหม่: แผงควบคุม / ระบบ / ที่แนะนำ / ตัวแปรด้านสิ่งแวดล้อม / ชื่อใหม่: JAVA_HOME ค่า: C: \ Program Files \ Java \ jdk-11.0.1 แต่ฉันไม่ทราบว่าเป็น มันจำเป็น


0

บางทีคุณอาจอัปเดต JREs ในระบบปฏิบัติการและการเพิ่มได้เพิ่มใน "เส้นทาง" ของตัวแปรสภาพแวดล้อมของรายการ "... / Oracle / jer" ที่เขียนทับ JAVA_HOME ของคุณ ลองลบออกจาก "เส้นทาง" โดยออกจาก JAVA_HOME


0

ในกรณีที่มันช่วยได้ปัญหาสำหรับฉันคือฉันมี 2 รายการในตัวแปรสภาพแวดล้อม PATH ซึ่งชี้ไปยังตำแหน่งที่มี javaw ที่สามารถเรียกใช้งานได้

ฉันล้างค่าตัวแปรเพื่อให้แน่ใจว่า "% JAVA_HOME% \ bin" เป็นรายการเดียวที่อ้างอิงตำแหน่งที่มีโปรแกรมปฏิบัติการ Java ของฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.