การติดตั้ง Java บน OS X 10.9 (Mavericks)


321

ฉันติดตั้งJDKบนMac OS X v10.8 (Mountain Lion) แล้ว เมื่อฉันอัพเกรดเป็นMac OS X v10.9 (Mavericks) และวิ่งเข้าไปjava -versionใน terminal มันแสดงให้เห็น:

ไม่มีรันไทม์ของ Java กำลังขอติดตั้ง

จากนั้นฉันติดตั้ง JDK (1.7) ด้วยตนเองบน Mac ของฉัน ดูเหมือนว่าการติดตั้งทำงานได้ดี เมื่อการติดตั้งเสร็จสิ้นฉันเปิดเทอร์มินัลแล้วพิมพ์java -versionเช่นกัน มันยังแสดงข้อผิดพลาดเดียวกัน:

ไม่มีรันไทม์ของ Java กำลังขอติดตั้ง

ฉันจะแก้ปัญหานี้ได้อย่างไร


1
ผมไม่ทราบว่าสิ่งที่เป็นปัญหาที่มีในขั้ว แต่ผมทำงานคราสและโครงการทั้งหมดจะถูกรวบรวมที่ดีใน Mavericks
ซันนี่

1
ดูเหมือนว่าตัวเรียกใช้งานจาวารุ่นเก่ารองรับเฉพาะ jdk 1.6 เท่านั้น แต่ mavericks ไม่มีการติดตั้ง 1.6 ตามค่าเริ่มต้น
Shawn

1
คุณติดตั้ง java 6 ไม่ใช่ java 7 เนื่องจาก OP หมายถึงพวกเขาต้องการ ฉันสนใจว่าจะเข้าถึงวิธีการแก้ปัญหาได้อย่างไร นอกจากนี้ยังจะต้องมีวิธีการ 'ทางเลือก' ที่นี่ที่เน้นการตอบรับจากเทอร์มินัลโดยตรง
Rondo

4
นี่ยอดเยี่ยมสำหรับ Java 6 แต่คุณจะทำให้ Java 7 ทำงานได้อย่างไร
190290000 Ruble Man

2
เพิ่มคำตอบที่เป็นไปได้เพื่อติดตั้ง Java 7 JRE และให้ทำงานในเทอร์มินัล: stackoverflow.com/a/19582689/346286
อนาล็อก

คำตอบ:


279

Mavericksใหม่(10.9) แสดงให้ฉันเห็นว่า "กำลังขอติดตั้ง" แต่ไม่มีอะไรเกิดขึ้น

วิธีแก้ปัญหาคือการดาวน์โหลดและติดตั้งแพคเกจ Java อย่างเป็นทางการสำหรับ OS X ซึ่งอยู่ในนั้น Java สำหรับ OS X 2013-005.

อัปเดต:ตามที่กล่าวไว้ในความคิดเห็นด้านล่างมีแพ็คเกจรุ่นเดียวกันนี้ใหม่กว่า:

Java สำหรับ OS X 2014-001

Java สำหรับ OS X 2014-001 (แก้ไขเส้นตายด้านบน)

Java สำหรับ OS X 2014-001 มีการปรับปรุงการติดตั้งและแทนที่ Java สำหรับ OS X เวอร์ชันก่อนหน้าทั้งหมดแพ็คเกจนี้ติดตั้ง Java 6 เวอร์ชันเดียวกันซึ่งรวมอยู่ใน Java สำหรับ OS X 2013-005


เหมือนกับฉัน. อีกทางเลือกหนึ่งคือการติดตั้ง Java จาก Oracle พวกคุณคิดว่าอันไหนดีกว่ากัน? Oracle ดูเหมือนว่าจะมีการปรับปรุง Java เร็วกว่า Apple
Ngoc Pham

2
แต่อันนี้ให้ JDK 6 เราจะใช้ JDK 6 ได้อย่างไร?
Shawn

2
@Shawn Apple ปิดใช้งานแล้วติดตั้ง JDK 7 แต่คุณสามารถรับคำถามที่พบบ่อยและติดตั้งได้จากที่นี่: java.com/en/download/faq/java_mac.xmlแต่ฉันไม่ได้ลอง
Guy

หากคุณติดตั้งทั้ง java6 และ java7 คุณสามารถเลือก v6 ในเชลล์ของคุณด้วย: export JAVA_HOME = / ระบบ / ไลบรารี / Java / JavaVirtualMachines / 1.6.0.jdk / เนื้อหา / หน้าแรก
Jürgen Strobel

1
ทำไมคุณถึงต้องการใช้จาวาแบบ 32 บิตบนระบบปฏิบัติการ 64 บิต 64 บิต java เร็วกว่า 32 บิตภายใต้ Mavericks
MiB

196

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

  • เปิด Terminal ของคุณ
  • java -version ให้ข้อผิดพลาดและป๊อปอัป
  • รับ JRE dmg ได้ที่http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • ติดตั้ง
  • ในเทอร์มินัลของคุณพิมพ์: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version ตอนนี้ให้คุณ java version "1.7.0_45"

นั่นเป็นวิธีที่สะอาดที่สุดที่ฉันพบว่าติดตั้ง JRE ล่าสุด

คุณสามารถเพิ่มexport JAVA_HOMEบรรทัดในของคุณ.bashrcเพื่อให้มีjavaอย่างถาวรใน Terminal ของคุณ:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc

37
ฉันคิดว่ามันฟังดูเล็กน้อยเพื่อกำหนดJAVA_HOMEให้ชัดเจนว่าปลั๊กอินของเบราว์เซอร์ใดแทนที่จะเป็น VM จริง เมื่อคุณติดตั้งเครื่องมือบรรทัดคำสั่ง XCode /usr/libexec/java_homeคุณจะได้รับเครื่องมือสำหรับการเส้นทางที่ถูกต้อง ดูdeveloper.apple.com/library/mac/documentation/Darwin/Reference/...
Ilkka

8
@Ilkka - มันฟังดูดี แต่ที่จริงแล้ว JRE ของออราเคิลติดตั้งไว้ Java ของ Apple (ซึ่งหยุดที่จาวา 6) ไม่ได้ผสมกับ oracle ที่ค่อนข้างเป็นอย่างที่ใคร ๆ ก็อาจจะชอบ
Orion Edwards

12
เพื่อนร่วมงานของฉัน (ซึ่งน่าเสียดายที่ไม่มีชื่อเสียงที่ต้องการที่นี่เพื่อเพิ่มความคิดเห็น) ต้องการเพิ่มว่าการตั้งค่า JAVA_HOME ควรเป็นexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller

1
ฉันติดตั้ง jdk7u45 จาก Oracle และยังใช้ export JAVA_HOME = $ (/ usr / libexec / java_home) ในโปรไฟล์ bash ของฉัน jdk7u45 ทำงานได้ดีมากรวมถึงพาเนลการกำหนดค่าตามความชอบระบบ java ตอนนี้ฉันกำลังอัพเกรดเป็น jdk7u51
MiB

2
ฉันต้องเพิ่มexport JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"~ / .profile แทน ~ / .bashrc หรือ ~ / .bash_profile เพื่อให้ได้งานนี้
LarS

64

สถานที่ที่เหมาะสมเพื่อดาวน์โหลด JDK สำหรับ Java 7 เป็นJava SE ดาวน์โหลด

ทั้งหมดเชื่อมโยงอื่น ๆ ให้ไว้ข้างต้นเท่าที่ผมสามารถบอกได้อย่างใดอย่างหนึ่งให้ JRE หรือ Java 6 ดาวน์โหลด (อนึ่งถ้าคุณต้องการที่จะทำงานคราสหรือ IDEs อื่น ๆ เช่นความคิด IntelliJคุณจะต้อง JDK, ไม่JRE )

เกี่ยวกับ IntelliJ IDEA - ที่จะยังคงขอให้คุณติดตั้ง Java 6 เนื่องจากต้องการตัวโหลดคลาสที่เก่ากว่าหรือบางสิ่ง: เพียงทำตามคำแนะนำเมื่อกล่องโต้ตอบปรากฏขึ้นและจะติดตั้ง JDK 6 ในตำแหน่งที่ถูกต้อง

หลังจากนั้นคุณจะต้องทำsudo ln -snfดังกล่าวในคำตอบข้างต้น:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(คัดลอกมาที่นี่เนื่องจากมีการกล่าวว่า "เหนือ" ในที่สุดอาจไม่สมเหตุสมผลเนื่องจากคำตอบถูกจัดเรียงใหม่)

ฉันยังตั้งJAVA_HOMEให้ฉันชี้ไปที่jdk_1.7.0_xx.jdkติดตั้ง:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"

จากนั้นเพิ่มลงในของคุณPATH:

export PATH=$JAVA_HOME/bin:$PATH

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


4
ดูความคิดเห็นของฉันเพื่อคำตอบอื่นสำหรับสิ่งที่อาจเป็นวิธีที่ดีกว่าที่จะได้รับเส้นทางนั้น
Ilkka

1
เนื่องจากคำตอบนี้มี upvotes มากกว่าบิตที่ระบุsudo ln -snfในคำตอบข้างต้นจึงไม่ถูกต้องอีกต่อไป นั่นคือการอ้างถึงคำตอบของนาย Ronald
Karthic Raghupathi

@KarthicRaghupathi ฉันไม่แน่ใจว่าฉันเข้าใจความคิดเห็น (การใช้งานthisและthatค่อนข้างสับสน) แต่คุณยังต้องใช้ symlink จากสถานที่ / Sytem / Library / etc ไปยังสถานที่จริงที่ Oracle ติดตั้ง JVM (/ Library / ฯลฯ .) หรือแอปพลิเคชันจะไม่สามารถค้นหารันไทม์ Java
Marco Massenzio

@Marco ตอนนี้คุณพูดถึงมันเมื่อฉันอ่านความคิดเห็นของตัวเองมันไม่ได้ทำให้รู้สึกมาก :) อนุญาตให้ฉันชี้แจง ในคำตอบของคุณคุณเขียน "หลังจากนั้นคุณจะต้องทำsudo ln -snfดังกล่าวในคำตอบข้างต้น;" คำตอบเลื่อนขึ้นหรือลงตามจำนวนโหวตที่ได้รับ ความตั้งใจของฉันคือการให้การอ้างอิงโดยตรงกับคำตอบที่มีsudo ln -snfคำสั่งเท่านั้น
Karthic Raghupathi

แก้ไข - แต่ไม่แน่ใจจริงๆว่าการสั่งซื้อซ้ำเกิดขึ้นจริง: พวกเขาทั้งหมดดูเหมือนจะเป็นที่ที่พวกเขาอยู่โดยไม่คำนึงถึง upvotes NVM
Marco Massenzio

14

ฉันดาวน์โหลดและติดตั้ง JDK 1.7 จากออราเคิล ในคอนโซล / ในเทอร์มินัล Java 7 ทำงานได้ดี

เมื่อฉันเริ่มโปรแกรม Java (เช่นEclipse ) ผ่าน GUI ฉันจะได้รับ:

ในการเปิด "Eclipse.app" คุณต้องใช้ Java SE 6 รันไทม์ คุณต้องการติดตั้งตอนนี้หรือไม่?

เนื่องจากฉันไม่ต้องการติดตั้ง Java เวอร์ชันเก่าฉันจึงใช้วิธีแก้ปัญหาต่อไปนี้:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

เครดิตmonkehWorks


1
ฉันต้องใช้ln -snfเพราะฉันได้รับOperation not permittedด้วยln -sf
Lars Blumberg

ขอบคุณฉันแก้ไขคำตอบและเพิ่มตัวเลือก -n ในคำสั่ง ln
นาย Ronald

+1 สิ่งที่ฉันกำลังมองหา ขอบคุณ! CLI ได้รับการอ้างอิงถึง JDK 7 หลังการติดตั้ง อย่างไรก็ตามสำหรับการรับแอพ GUI เพื่อรับ JDK ที่ถูกต้องขั้นตอนนี้จำเป็น
Karthic Raghupathi

มีความหวัง แต่มันไม่ได้ผลสำหรับฉัน Android Studio 0.3.2 ยืนยันที่ "ดาวน์โหลด Java 6" ซึ่งฉันจะไม่ทำ ติดตั้ง Oracle Java 7 JDK แล้ว
akauppi

คุณต้องใช้ Eclipse เวอร์ชัน 64 บิต 32-bit ต้องการ Apple java
Thorbjørn Ravn Andersen

4

ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากไฟล์ plist ของ IntelliJ IDEA ต้องการ Java เวอร์ชัน 1.6 * เพื่อแก้ปัญหานี้ให้เปลี่ยน 1.6 * เป็น 1.8 *

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>

มันทำเพื่อฉัน ปัญหาของฉันคือเมื่อฉันอัปเดตเป็น osx 10.9 ฉันยังคงสามารถเข้าถึง java จากเทอร์มินัลและทุกอย่างอื่น (รวมถึง eclipse ทำงานได้ดี) เฉพาะ Studio Android เท่านั้นที่ทำให้เกิดข้อผิดพลาดนี้
ucsunil

สิ่งนี้ไม่ได้ผลสำหรับฉันใน OS X 10.10.1 มันบ่นว่าไม่มีรุ่น 1.8 (แม้ว่า JRE 8 จะได้รับการติดตั้งอย่างเหมาะสม)
Emmanuel Bourg

คุณตรวจสอบว่าตั้งค่า JAVA_HOME หรือไม่
Fabio Fumarola

3

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

คุณสามารถรับได้ที่นี่: http://java.com/th/download/mac_download.jsp?locale=th


เราไม่ควรสันนิษฐานว่าการจำหน่าย Java 6 ของ Apple ในปัจจุบันไม่ได้รับการสนับสนุน
Graham Perrin

ฉันวางคำว่า 'สนับสนุน' ในเครื่องหมายคำพูดเพื่อหลีกเลี่ยงการพยายามหยอกล้อปัญหาที่ซับซ้อน Oracle คิดค่าใช้จ่ายสำหรับการสนับสนุน 6 ... และค่าธรรมเนียมการสนับสนุนนั้นจะมีผลบังคับใช้กับ Apple เช่นกัน ดังนั้น Apple เป็น 'ของตัวเอง' โดยไม่มีสัญญา พวกเขามีหนึ่งและวางแผนที่จะทำงานผ่านแพทช์สำหรับ MacOSX? สัญญายังคงอนุญาตให้มีการแจกจ่ายซ้ำได้หรือไม่ ขณะนี้มีการอัปเดต Java 7 2 รายการจาก Oracle ตั้งแต่อัปเดตล่าสุดของ Apple เป็น 6 ในอดีตพวกเขามักจะเผยแพร่ขั้นตอนการล็อก อาจสันนิษฐาน; สมมติฐานที่ปลอดภัยหรือไม่ น่าจะเป็นแบบนั้น.
Rondo

3

ประสบการณ์ของฉันสำหรับการอัปเดต Java SDK บน OS X 10.9 นั้นง่ายกว่ามาก

ฉันดาวน์โหลดล่าสุดJava SE Development Kit 8จากการดาวน์โหลด SEและติดตั้งไฟล์. dmg และเมื่อพิมพ์java -versionเทอร์มินัลสิ่งต่อไปนี้จะปรากฏขึ้น:

รุ่น java "1.8.0_11"

สภาพแวดล้อมรันไทม์ Java (TM) SE (สร้าง 1.8.0_11-b12)

เซิร์ฟเวอร์ Java HotSpot (TM) 64- บิต VM (บิลด์ 25.11-b03, โหมดผสม)


3

ฉันดาวน์โหลดด้วยตนเองที่นี่: Java สำหรับ OS X 2014-0012014-001

หลังจากนั้นเปิดเทอร์มินัลของคุณและตรวจสอบการติดตั้งด้วย java -versionหลังจากนั้นเปิดของสถานีและตรวจสอบการติดตั้งด้วย

แก้ไข (มกราคม, 2015) : ดูHT202912, เกี่ยวกับ Java สำหรับ OS X 2014-001 :

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


1

จาก OP:

ในที่สุดฉันก็ติดตั้งใหม่จาก Java สำหรับ OS X 2013-005 แก้ไขปัญหานี้แล้ว


1

ข้อผิดพลาดนี้หมายความว่าติดตั้ง Java ไม่ถูกต้อง

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - ถังเบียร์คืออะไร? Homebrew-Cask ขยาย Homebrew และแก้ไขความยุ่งยากในการดำเนินการคำสั่งพิเศษ - “ ในการติดตั้งให้ลากไอคอนนี้…”หลังจากติดตั้งแอปพลิเคชันโดยใช้Homebrew Homebrew

NB - ปัญหานี้ไม่ได้เฉพาะเจาะจงกับ Mavericks คุณจะได้รับมันเกือบทุก OS X รวมถึง EL Capitan


0

ที่มีอยู่ไม่จำเป็นต้องติดตั้ง JDK ซึ่งเป็นใด ๆชุดพัฒนาเพียงJREซึ่งเป็นสภาพแวดล้อมรันไทม์


6
นั่นเป็นเรื่องจริง อย่างไรก็ตามสิ่งที่ Apple จัดหาให้คือ JDK และ JRE จาก Oracle มีไว้สำหรับ Internet Plugin javaคำสั่งไม่ได้เชื่อมโยงกับระบบโดยอัตโนมัติดังนั้นคุณยังคงเห็น เมื่อคุณพิมพ์java -versionใน Terminal
Ngoc Pham
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.