ฉันจะตรวจสอบได้อย่างไรว่า Java JDK ติดตั้งบน Mac หรือไม่


125

คุณจะตรวจสอบได้อย่างไรว่า Java SDK ติดตั้งบน Mac หรือไม่?

มีบรรทัดคำสั่งสำหรับสิ่งนี้หรือไม่?


"ซอฟต์แวร์นั้นไม่ทำงาน" ผลลัพธ์ข้อผิดพลาดคืออะไร?
Andrew Thompson

คำตอบ:


184

javac -version ในเทอร์มินัลจะทำ


ฉันได้รับ "javac 1.6.0_37" เทียบเท่ากับ jdk 6 หรือ 7 หรือไม่?
กีวีโกรธ

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

72

คุณสามารถใช้java_homeไบนารีตัวช่วยOS Xสำหรับสิ่งที่คุณกำลังมองหา

ในการแสดงรายการ JDK ที่ติดตั้งไว้ทั้งหมด:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    1.8.0_51, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
    1.7.0_79, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

หากต้องการขอพา ธ JAVA_HOME ของ JDK เวอร์ชันเฉพาะคุณสามารถทำได้:

$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home

$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home

คุณสามารถใช้ประโยชน์จากคำสั่งข้างต้นในสคริปต์ของคุณได้ดังนี้:

REQUESTED_JAVA_VERSION="1.7"
if POSSIBLE_JAVA_HOME="$(/usr/libexec/java_home -v $REQUESTED_JAVA_VERSION 2>/dev/null)"; then
    # Do this if you want to export JAVA_HOME
    export JAVA_HOME="$POSSIBLE_JAVA_HOME"
    echo "Java SDK is installed"
else
    echo "Did not find any installed JDK for version $REQUESTED_JAVA_VERSION"
fi

คุณอาจสามารถทำ if-else และตรวจสอบ java เวอร์ชันต่างๆได้เช่นกัน

หากคุณต้องการเอาต์พุต XML java_home ยังมีตัวเลือก -X เพื่อส่งออกใน XML

$ /usr/libexec/java_home --help
Usage: java_home [options...]
    Returns the path to a Java home directory from the current user's settings.

Options:
    [-v/--version   <version>]       Filter Java versions in the "JVMVersion" form 1.X(+ or *).
    [-a/--arch      <architecture>]  Filter JVMs matching architecture (i386, x86_64, etc).
    [-d/--datamodel <datamodel>]     Filter JVMs capable of -d32 or -d64
    [-t/--task      <task>]          Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
    [-F/--failfast]                  Fail when filters return no JVMs, do not continue with default.
    [   --exec      <command> ...]   Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
    [-R/--request]                   Request installation of a Java Runtime if not installed.
    [-X/--xml]                       Print full JVM list and additional data as XML plist.
    [-V/--verbose]                   Print full JVM list with architectures.
    [-h/--help]                      This usage information.

18

พิมพ์เทอร์มินัล:

which javac

ควรแสดงสิ่งที่ชอบ

/usr/bin/javac

12
-1 สำหรับคำตอบ: การมีคำสั่ง java ในเส้นทางไม่ได้เป็นพยานว่ามีการติดตั้ง JDK (แต่ JRE)
Luigi R. Viggiano

ฉันเห็นด้วย. ฉันสามารถเรียกใช้ "ซึ่ง java" หรือ "javac ตัวไหน" แต่ฉันได้รับข้อความแสดงข้อผิดพลาดเมื่อเรียกใช้ "java --version" เนื่องจากไม่ได้ติดตั้ง JDK
fanchyna

1
-1 นี่ผิดอย่างสิ้นเชิง เครื่อง Mac ทั้งหมดมาพร้อมกับjavacshim โดยค่าเริ่มต้น ไม่มีความสัมพันธ์กับการติดตั้ง Java หรือไม่
Radon Rosborough

3

คำสั่งด้านล่างทำงานได้ค่อนข้างดี:

javac -version

ฉันยังตรวจสอบด้วยตนเองโดยไปที่โฟลเดอร์ Java บน Mac ของฉัน

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk

2

/usr/bin/java_home เครื่องมือจะคืนค่า 1 หากไม่ได้ติดตั้ง java

ดังนั้นคุณสามารถตรวจสอบว่ามีการติดตั้ง java ด้วยวิธีต่อไปหรือไม่:

/usr/libexec/java_home &> /dev/null && echo "installed" || echo  "not installed"

1

javacเพียงพิมพ์ หากมีการติดตั้งคุณจะได้รับข้อมูลการใช้งานมิฉะนั้นจะถามว่าคุณต้องการติดตั้ง Java หรือไม่


0

ตรวจสอบให้แน่ใจว่าคุณกำหนด JDK ของโปรเจ็กต์อย่างถูกต้องและรีสตาร์ท IntelliJ (รีสตาร์ทแบบเต็ม)


0
  • เปิดเทอร์มินัล
  • เรียกใช้คำสั่งเพื่อดู:

    javac - รุ่น

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

    ซีดี / ไลบรารี / Java / JavaVirtualMachines /

จากนั้นเรียกใช้lsคำสั่งในเทอร์มินัลอีกครั้ง ตอนนี้คุณสามารถดูเวอร์ชันและแพ็คเกจ jdk ได้หากมีอยู่ในคอมพิวเตอร์ของคุณ

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