JAVA_HOME ไม่ได้กำหนดไว้อย่างถูกต้อง


14

ฉันติดตั้ง java jdk hotspot 1.7 เมื่อฉันพิมพ์java -versionฉันได้รับ:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

สิ่งนี้ถูกต้อง

และฉันพยายามติดตั้ง maven และเพิ่มลงใน/etc/environmentไฟล์:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

ตอนนี้เมื่อฉันพิมพ์ mvn ฉันได้รับ:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

อย่างไรก็ตามฉันไม่ได้ใส่เครื่องหมาย "สำหรับ JAV_HOME var ในไฟล์สภาพแวดล้อม

กำลังพยายามเรียกใช้จาก

”/usr/lib/jvm/jdk1.7.0”/bin/java

เส้นทางที่จริงมันควรจะเป็น

/usr/lib/jvm/jdk1.7.0/bin/java

เมื่อฉันสั่ง

$JAVA_HOME

ฉันได้รับ:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

ฉันแน่ใจว่าเส้นทาง ( /usr/lib/jvm/jdk1.7.0) ถูกต้อง


คุณสามารถทำได้ls -al /usr/lib/jvmและยืนยันว่า 'jdk1.7.0' เป็นรูปแบบสำหรับชื่อไดเรกทอรีหรือไม่ เมื่อใช้ Oracle พวกเขามักจะใช้ชื่อโฟลเดอร์แปลก ๆ
Thomas Ward

ls /usr/lib/jvm/java-7และls "/usr/lib/jvm/java-7"/binให้ผลผลิตและควรให้ผลลัพธ์เดียวกันสำหรับฉัน (ซึ่งไม่ว่างเปล่า) ส่วนสุดท้าย, java-7 เป็นผลมาจากการดัดแปลงด้วยตนเอง - มันสามารถและจะแตกต่างกันเล็กน้อยสำหรับคุณ ตรวจสอบว่ามีโฟลเดอร์ดังกล่าวอยู่ (jdk1.7.0)
ผู้ใช้ที่ไม่รู้จัก

ฉันได้total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0 หลังจากใช้ls -al /usr/lib/jvm คำสั่งนี้
Kamoliddin

echo $VARNAMEโปรดทราบว่าจะเห็นตัวแปรในคอนโซลของคุณคุณจะคาดว่าจะพิมพ์: หากคุณเพียงแค่ทำ$VARNAMEมันจะดำเนินการสิ่งที่อยู่ในตัวแปรนั้น
Alexis Wilke

คำตอบ:


15

JAVA_HOMEควรจะตั้งชื่อของไดเรกทอรีที่มีbinไดเรกทอรีที่มี executables Java (โดยเฉพาะอย่างยิ่งjavaตัวเอง)

สมมติว่าคุณมี/usr/lib/jvm/jdk1.7.0ไดเรกทอรีมันอาจจะมีjreไดเรกทอรีย่อยที่มีbinไดเรกทอรีที่มีjavaและปฏิบัติการที่เกี่ยวข้อง

ดังนั้นคุณควรอาจจะตั้งค่าJAVA_HOMEไปมากกว่า/usr/lib/jvm/jdk1.7.0/jre/usr/lib/jvm/jdk1.7.0


การติดตั้ง JDK ไม่ใช่เพียงแค่ JRE โดยทั่วไปจะนำไปสู่ไดเรกทอรี JDK ที่มี bin dir รวมถึง JRE-dir ซึ่งตัวเองมี bin dir แต่JAVA_HOMEถูกตั้งค่าไว้ที่ dir หลักเสมอไม่ใช่ไปที่jredir
ผู้ใช้ที่ไม่รู้จัก

น่าสนใจฉันต้องตั้งค่าเป็น jdk ไม่? ฉันจะเขียนโค้ดในภาษาจาวาคอมไพล์ปรับใช้ ฯลฯ ..
Kamoliddin

@Kamoliddin หาก Maven ใช้$JAVA_HOMEรู้ว่าอยู่ที่ไหนjavacและไบนารีการพัฒนาอื่น ๆ ใช่แล้วคุณจะต้องตั้งค่าเป็นjdkdir ที่ประกอบด้วยbindir ที่มีไบนารีเหล่านั้น
Eliah Kagan

ขอบคุณฉันไม่ทราบว่าจะทำงานหลังจากรีสตาร์ทฉันคิดว่าฉันไม่จำเป็นต้องรีสตาร์ทเพื่อให้การเปลี่ยนแปลงมีผล ฉันไม่ได้เปลี่ยนแปลงอะไรเลย มันได้ผล
Kamoliddin

ไม่แน่ใจว่าทำไมเขาใช้ jdk1.7.0 ที่ทุกคน .. /usr/lib/jvm/javaควรจะพอเพียงสำหรับทั้งสองและjava javacทางเลือกอื่นให้ดูแลสิ่งนี้
Brian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.