Java ติดตั้งอยู่ที่ไหนบน Mac OS X


726

ฉันเพิ่งดาวน์โหลด Java 7u17 บน Mac OS 10.7.5 จากที่นี่แล้วติดตั้งสำเร็จ ในการทำการเขียนโปรแกรม JNI ฉันต้องรู้ว่าติดตั้ง Java บน Mac ของฉันไว้ที่ใด

ฉันคิดว่าภายใน/Library/Java/JavaVirtualMachines/โฟลเดอร์จะมีโฟลเดอร์ชื่อ1.7.0.jdkหรืออะไรบางอย่าง แต่แล้วฉันก็พบว่าโฟลเดอร์ว่างเปล่า สิ่งนี้ได้รับการยืนยันจากการรันls /Library/Java/JavaVirtualMachines/ในเทอร์มินัล ฉันได้ลองค้นหามันเพื่อดูว่ามีการติดตั้งที่อื่น แต่ดูเหมือนจะไม่เกิดอะไรขึ้น

ใครช่วยกรุณาบอกฉันว่ามีการติดตั้ง Java บน Mac ของฉัน?


12
ผู้มีสิทธิเลือกตั้งใกล้ / reopeners - คำถามนี้อย่างชัดเจนไม่ได้ปิดหัวข้อ (คำถามเกี่ยวกับเครื่องมือที่ใช้กันทั่วไปโดยโปรแกรมเมอร์) แต่น่าเสียดายที่มันก็ bandwagoned โดยเมตา
Rob

คำตอบ:


1384

ใช้/usr/libexec/java_home -v 1.8คำสั่งบนเทอร์มินัลเชลล์เพื่อค้นหาไดเรกทอรีบ้านJava 1.8

หากคุณต้องการค้นหาโฮมไดเร็กทอรีของ Java เวอร์ชันล่าสุดของคุณให้ข้ามเวอร์ชันนั้น เช่น/usr/libexec/java_home


ฉันได้รับคำถามนี้เพราะฉันได้รับข้อผิดพลาดใน eclipse บน mac ของฉันเพราะฉันได้รับข้อผิดพลาดในบรรทัดแรกของโปรแกรม "import java.util. *." ฉันสงสัยอย่างยิ่งว่านี่เป็นเพราะเส้นทาง java ไม่ได้ตั้งค่าอย่างถูกต้องหรือบางสิ่งบางอย่าง (แม้ว่าฉันจะตั้งค่านี้ไว้ก่อนหน้านี้) ฉันป้อนคำสั่งในคำตอบนี้และได้รับไดเรกทอรี ฉันสามารถวางไดเรกทอรีนั้นลงในกล่องข้อความในหน้าต่าง "การตั้งค่าโฟลเดอร์ของไลบรารีดั้งเดิม" ได้หรือไม่ หรือไดเรกทอรีนี้เป็นของที่อื่น?
OKGimmeMoney

47
เพิ่มexport JAVA_HOME=`/usr/libexec/java_home`ลงใน. bash_profile ดังนั้น JAVA_HOME จึงถูกตั้งค่าไว้เสมอ (จดบันทึกย้อนหลังรอบคำสั่ง libexec)
Steve Henty

หากคุณต้องการทราบว่ามีการติดตั้ง JDK บน mac ของคุณหรือไม่ให้เว้นหมายเลขเวอร์ชันและเรียกใช้จากเทอร์มินัล: $ echo $ (/ usr / libexec / java_home)
Donato

3
สำหรับ Mac 10.12.3 เราควร/usr/libexec/java_home -- vจะแสดงจาวา
klion26

116

คุณสามารถใช้echo $(/usr/libexec/java_home)คำสั่งในเทอร์มินัลเพื่อทราบเส้นทางที่ติดตั้ง Java


7
ฉันชอบวิธีนี้ดีกว่าคำตอบที่ยอมรับเพราะเป็นอิสระจาก JVM รุ่นที่ติดตั้ง
Alexandre Santos

1
ไม่พบรุ่น java 8 ของฉันที่ติดตั้งโดย Oracle
Antoine Lizée

13
ทำไมคุณถึงecho $(...)อยู่ที่นั่น? ไม่เพียงแค่/usr/libexec/java_homeทำเช่นเดียวกัน?
Paŭlo Ebermann

1
คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน แต่มันได้ผล! (ฉันตามปกติไม่ได้เป็นผู้ใช้ Mac / Unix)
โรล

@ PaŭloEbermannมันใช้ไม่ได้กับฉันถ้าไม่มีเครื่องหมาย dolar และวงเล็บ
Nikola Stojaković

80

ปรากฎว่าฉันติดตั้ง Java 7 JRE ไม่ใช่ JDK ลิงค์ดาวน์โหลดที่ถูกต้องคือที่นี่ หลังจากติดตั้งแล้วjdk1.7.0jdkจะปรากฏในไดเรกทอรี JavaVirtualMachines


49
สำหรับผมมันอยู่ภายใต้/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(รู้ว่าสำหรับ JDK 1.6 เส้นทาง: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/)
Zakaria

ขอบคุณมาก! ฉันไม่ได้สังเกตว่าฉันติดตั้ง JRE โดยไม่ได้ตั้งใจทั้ง xD
Oliver Ni

1
ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

34

หากคุณติดตั้งเพียง JRE ดูเหมือนว่าจะอยู่ที่:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

2
คุณไม่ควรเชื่อถือสิ่งนี้ หากคุณต้องการ JRE ให้รวมกลุ่มไว้ในแอปพลิเคชันของคุณเอง
swingler

การตั้ง JAVA_HOME ด้วยเส้นทางที่มีอักขระเว้นวรรคเป็นเรื่องที่ท้าทาย! ฉันไม่ประสบความสำเร็จ ...
แอนทอนรอสเซ็ต

คุณสามารถสร้างลิงค์ไปยังไดเรกทอรีนี้และตั้งค่า JAVA_HOME เป็นลิงค์นั้น
Kuba

นี่คือที่ดูเหมือนว่าแผงการตั้งค่าระบบ "Java"
David Avendasora

2
@AntoineRosset คุณสามารถตั้งค่ามันด้วยวิธีนี้:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
ตอนจบ

24

ใช้ฟังก์ชัน unix find เพื่อค้นหา javas ที่ติดตั้ง ...

sudo find / -name java

19
คุณไม่จำเป็นต้องใช้ sudo เพื่อค้นหาคำสั่งที่เข้าถึงได้โดยทั่วไป หากคุณไม่ต้องการเห็นข้อความแสดงข้อผิดพลาดเกี่ยวกับไดเรกทอรีที่เข้าถึงไม่ได้ให้กำจัดข้อความแทนที่จะใช้รูทส่วนตัวโดยไม่จำเป็น การใช้ sudo ตลอดเวลาเป็นนิสัยที่ไม่ดี เปลี่ยนเส้นทาง stderr เป็น / dev / null เช่นนี้ find / -name java 2> / dev / null
Walter Underwood

1
ฉันควรทำอย่างไรหากฉันต้องการดูภายใต้ไดเรกทอรีที่เข้าไม่ถึงด้วย?
serkan

2
ประเด็นของวอลเตอร์คือว่าjavaไบนารีจะเป็นโลกที่อ่านได้ดังนั้นจึงsudoไม่จำเป็น คำตอบของคุณยังคง :) ประโยชน์
Jared เบ็ค

ใช่ฉันเพิ่งใช้สิ่งนี้เพื่อค้นหา src.zip (ซอร์สโค้ดของ java jdk)
Dinis Cruz

ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

22

ลองสิ่งนี้เป็นวิธีที่ง่ายในการค้นหาเส้นทางที่ติดตั้ง java ใน Mac OS X

ไปที่

1) / Library เช่น Macintosh HD / Library

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

2) คลิกที่ Library เพื่อหาโฟลเดอร์ Java

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

3) เส้นทางสุดท้ายคือ

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

หวังว่านี่จะช่วยคนได้


1
ค่อนข้างมีประโยชน์เมื่อคุณต้องชี้ JDK จาก IDE อย่างชัดเจน ขอบคุณ
Shwetabh Shekhar

ฉันหนาแน่นแค่ไหน เทอร์มินัลของฉันบอกว่าฉันมี 2 jdk ติดตั้งอยู่ใน / Library / Java / JavaVirtualMachines / แต่ฉันหามันไม่พบเมื่อฉันนำทางไปยังไดเรกทอรีนั้นใน finder ... ฉันจะได้รับหนาแน่นมากแค่ไหน ...
SoftwareSavant

@SoftwareSavant โปรดอ้างอิง stackoverflow.com/a/14875241คำตอบมันอาจจะช่วยคุณได้
Jaywant Khedkar

19

โครงสร้างแพ็คเกจ Java ของ Mac OS นั้นแตกต่างจาก Windows เล็กน้อย อย่าอารมณ์เสียสำหรับเรื่องนี้เป็นนักพัฒนาเพียงแค่ต้องการให้ชุดและPATHJAVA_HOME

ดังนั้นใน.bash_profileชุดJAVA_HOMEและPATHดังต่อไปนี้ ตัวอย่างนี้สำหรับ Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

12
สิ่งนี้จะลบทุกสิ่งออกจากเส้นทางหรือไม่ ทำสิ่งนี้เฉพาะเมื่อคุณใช้ Java เท่านั้นและไม่มีอะไรอื่นในระบบของคุณ
Paŭlo Ebermann

ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

17

ถ้าคุณพิมพ์

java -verbose 

สิ่งนี้ยังให้ตำแหน่งที่โหลดไหและดังนั้นจึงเป็นเส้นทาง java


ฉันเพิ่มเอ็กซ์พอร์ต JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

8

แก้ไข: นามแฝงถึงรุ่นจาวาปัจจุบันคือ /Library/Java/Home

สำหรับข้อมูลเพิ่มเติม: ลิงค์


นั่นจะเป็นนามแฝงสำหรับเวอร์ชันล่าสุดซึ่งจะชี้ไปยัง Java 7 SDK อย่างถูกต้องเมื่อติดตั้งแล้ว
Thunderforge

1
ลิงค์นี้มีไว้เพื่อวัตถุประสงค์ดั้งเดิมเท่านั้นและจะไม่ได้รับการอัพเดตโดยการติดตั้ง Java 7 อย่าใช้พา ธ นี้
swingler

ฉันอัปเดตการส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

8

เพียงแค่เขียน/Library/Java/JavaVirtualMachines/
ในไปที่โฟลเดอร์ -> ไปใน Finder


ตกลงฉันเพิ่งลองและฉันจัดการเพื่อนำทางไปยังไดเรกทอรี ทำไมฉันไม่สามารถนำทางไปยังโฟลเดอร์นั้นตามปกติใน Finder นี่คือเพียงแค่แอปเปิ้ลเป็นพิเศษที่น่ารำคาญ ... นอกจากนี้ที่น่ารำคาญพิเศษ Gradle รุ่น 4.3 ไม่ได้ทำงานกับรุ่นของ Java ใด ๆ ยกเว้นสำหรับ Java 8
SoftwareSavant

ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

6

ฉันเพิ่งติดตั้ง JDK สำหรับเวอร์ชัน 21 ของ Java SE 7 และพบว่าติดตั้งในไดเรกทอรีอื่นจาก Apple Java 6 อยู่ใน / Library / Java ... แทนที่จะเป็นใน / System / Library / Java ... . Running / usr / libexec / java_home -v 1.7 กับ -v 1.6 จะยืนยันสิ่งนี้


ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

6

ฉันลองวิธีแก้ปัญหาของ serkan พบตำแหน่งของ Java 7 บน OS X Mavericks มันอาศัยอยู่"/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" แต่เพื่อให้เป็นค่าเริ่มต้น JDK ฉันต้องตั้งค่าตัวแปรระบบ JAVA_HOME ใน. bash_profile ในโฮมไดเร็กตอรี่เพื่อ"/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" ให้มันทำงานได้ทันทีขอบคุณแนวคิด serkan


ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn

5

สำหรับ:

  • OS X: 10.11.6

  • Java: 8

ฉันยืนยันคำตอบของ @Morrie

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

แต่ถ้าคุณใช้ภาชนะชีวิตของคุณจะง่ายขึ้น


2
ฉันคิดว่านี่น่าจะเป็นความคิดเห็น
Thunderforge

1
ฉันไม่คิดว่าเพราะมีมูลค่าเพิ่มซึ่งคือ `การส่งออก JAVA_HOME = ' ... แล้วคุณล่ะ @Thunderforge
Abdennour TOUMI

ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn


-1

การตั้งค่าระบบจากนั้นตามด้วยแผงควบคุม Java จากนั้น Java จากนั้นมุมมองจะแสดงตำแหน่งที่แน่นอนของ JRE เริ่มต้นที่ติดตั้งอยู่ในปัจจุบัน


ส่งออก JAVA_HOME = $ (/ usr / libexec / java_home) ที่ ~ / .bash_profile
Oleksii Kyslytsyn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.