ฉันมีปัญหาเดียวกันในเครื่อง 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