Mountain Lion พร้อม Java 7 เท่านั้น


39

ฉันทำการติดตั้ง Mountain Lion ใหม่ทั้งหมดและติดตั้ง JDK7

java -versionใน Terminal กลับมาjava version "1.7.0_05"อย่างถูกต้องยังคงการตั้งค่า Java และบางโปรแกรม Java อื่น ๆ (เช่น Eclipse) ผลในการแจ้งให้ติดตั้ง Java SE 6

ฉันสามารถเริ่ม Eclipse อย่างสมบูรณ์แบบจากบรรทัดคำสั่งด้วย Java 7

มีวิธีที่จะทำให้การทำงานนี้โดยไม่ต้องติดตั้ง Java 6 หรือไม่?


1
นี่มันเลอะจริงๆ ทำไมบนโลกนี้ถึงไม่คงที่? ความปลอดภัยที่เพิ่มขึ้นไม่ได้เป็นแรงจูงใจหลักสำหรับสาเหตุที่ Apple เลิกควบคุมกระบวนการอัปเดต Java หรือไม่ ทำไม OSX ยังแจ้งเตือนให้ฉันติดตั้ง Java ที่ล้าสมัย? อ๊ะ!
gentmatt

@gentmatt Java 7 ไม่ใช่การอัปเดตอย่างง่ายสำหรับ Java 6 - มันเป็นเหมือนการเปลี่ยน OS สิ่งต่างๆจะหยุดลงเมื่อใช้รุ่นที่ใหญ่กว่าและทั้งสองเวอร์ชันหลักจะได้รับการอัปเดตเพื่อแก้ไขปัญหาความปลอดภัย
user151019

@gentmatt Apple ไม่ต้องการ Java อีกต่อไปแล้วละทิ้งมันไป ออราเคิลเลือกที่จะรับลูกบอล
Thorbjørn Ravn Andersen

1
ก็ยังคงโง่ที่จะต้องใช้ Java 6 ที่ได้รับว่ามันเลิกตอนนี้ ...
Donal Fellows

คำตอบ:


27

JDK 7 จะถูกติดตั้งภายใต้ /Library/Java/JavaVirtualMachines/1.7.0.jdk, JDK 6 ภายใต้ / System / Library / Java / JavaVirtualMachines

หากต้องการหลอกลวง OS X ให้ยอมรับ Java 7 แทนที่จะเสนอให้ติดตั้ง Java 6 symlink แบบง่าย ๆ ก็เพียงพอแล้ว:

sudo mkdir /System/Library/Java/JavaVirtualMachines
sudo ln -s /Library/Java/JavaVirtualMachines/1.7.0.jdk /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

Java Programms ส่วนใหญ่จะทำงานกับแฮ็คตัวเล็ก ๆ นี้โดยไม่จำเป็นต้องติดตั้ง Java 6 การตั้งค่า Java ของ OS X (และอาจจะเป็นอย่างอื่น) จะไม่เป็นไปตามที่ตรวจสอบรุ่น JVM อย่างชัดเจนเมื่อเริ่มต้น


1
บรรทัดที่สองไม่ควรมี "su" ควรเป็น "sudo ln -s ..... "
David Morales

3
ฉันเพิ่งติดตั้งใหม่รวมถึง JDK 7u9 และติดตั้งไว้ที่/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk; คำแนะนำทำงานได้ดีเป็นอย่างอื่น
Geoffrey Wiseman

3
ระวังการทำ symlink ... Apple เปิดตัวอัปเดตความปลอดภัย 1.6 เร็ว ๆ นี้ หากคุณใช้การอัปเดตนี้จาก Apple symlink ดูเหมือนจะหลอกการอัปเดตและติดตั้งการอัปเดต 1.6 ในจุดที่ symlink ชี้ไปที่เช่นของ 1.7 ของ Oracle

สิ่งนี้อาจทำลายสิ่งต่าง ๆ หากโปรแกรม Java ต้องการ Java 6 และไม่ใช่ 7 มันอาจแตกเมื่อคุณใช้รุ่นอื่น
user151019

นี่เป็นทางออกที่ดีกว่าหากคุณใช้ Mavericks: stackoverflow.com/questions/19563766/…
jedesah

4

หมายเหตุ: หากคุณมีบางอย่างที่ต้องการ java6 จริง ๆ และจะไม่ทำงานกับ java7 คุณอาจต้องระงับการติดตั้ง java7 เหตุผลก็คือมันอาจเป็นเรื่องยากเล็กน้อยที่จะพยายามเก็บทั้ง 6 และ 7 ไว้ใน macintosh เดียวกันเนื่องจาก 7 pkg ทำบางสิ่งบางอย่างยุ่งกับรายการ apple-6-java บางส่วนตามรายละเอียดด้านล่าง ดังนั้นฉันจะมองหาคำแนะนำทีละขั้นตอนในการรักษา 6 และ 7 ใน mac เดียวกันก่อนที่จะเริ่มออก ... ดูเพิ่มเติมที่http://reviews.cnet.com/8301-13727_7-57533880-263/ java-preferences-missing-after-latest-os-x-java-update /เมื่อวันที่ 18 ต.ค. 2555

รายละเอียดสคริปต์เชลล์ที่ติดตั้งไว้ล่วงหน้าใน jre-7u9-macosx-x64.dmg เพิ่งลบบานหน้าต่าง Apple pref (รวมถึงปลั๊กอิน) โดยไม่มีการเตือนด้านล่าง

#!/bin/bash
PLUGIN_BASEDIR=/Library/Internet\ Plug-Ins
PLUGIN_NAME=${PLUGIN_BASEDIR}/JavaAppletPlugin.plugin
MKDIR=`which mkdir`
RM=/bin/rm
# Remove the symlink before installation forcing ystem Preferences.app to refresh its cache
PREF_PANE_NAME=JavaControlPanel.prefpane
PREF_PANE_DEST=/Library/PreferencePanes/
# Actually removes the symlink
if [[ -h "${PREF_PANE_DEST}/${PREF_PANE_NAME}" ]]; then
     ${RM} -rf "${PREF_PANE_DEST}/${PREF_PANE_NAME}"
fi
# Create the /Library/Internet Plug-Ins if not present
if [[ ! -d "${PLUGIN_BASEDIR}" ]]; then
     ${MKDIR} -p "${PLUGIN_BASEDIR}"
fi
# If Apple's plugin is present, then delete it
if [[ -h "${PLUGIN_NAME}" ]] && [[ -d "${PLUGIN_NAME}" ]]; then
    ${RM} -rf "${PLUGIN_NAME}"
fi

=== และสคริปต์ติดตั้งโพสต์จะตั้งค่า symlink ===

#!/bin/bash
LN=`which ln`
CHOWN=`which chown`
PLUGIN_FILEPATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
PREF_PANE_NAME=JavaControlPanel.prefpane
PREF_PANE_SRC=/Library/Internet\ Plug-       Ins/JavaAppletPlugin.plugin/Contents/Home/lib/deploy/JavaControlPanel.prefpane
PREF_PANE_DEST=/Library/PreferencePanes/
if [ ! -h "${PREF_PANE_DEST}/${PREF_PANE_NAME}" ]; then
    ${LN} -s "${PREF_PANE_SRC}" "${PREF_PANE_DEST}"
fi
${CHOWN} -R root:wheel "${PLUGIN_FILEPATH}"

-2

Mountain Lion พร้อมด้วย Java 7 เพียงอย่างเดียว

คุณกำลังติดตามขวา ... 

โดยไม่ต้องติดตั้ง Java 6

…แจ้งให้ทำการติดตั้งดังที่อธิบายไว้ในคำถาม

ดังนั้นคำตอบสั้น ๆ ของฉันคือใช่คุณสามารถมี Java 7 อยู่คนเดียว แต่ไม่ใช่หากไม่มีการติดตั้ง Java 6

ลอง:

  1. อนุญาตให้ติดตั้ง Java ของ Apple
  2. ลบออกจากสองไดเรกทอรีด้านล่างเวอร์ชันของ Java ที่ไม่ต้องการอีกต่อไป:

    / Library / Java / JavaVirtualMachines

    / ระบบ / Library / Java / JavaVirtualMachines

(สำหรับกรณีเช่นนี้ฉันคิดว่าคุณสามารถเพิกเฉยต่อคำแนะนำปกติที่จะไม่ยุ่งเกี่ยวกับ/Systemสิ่งต่าง ๆได้อย่างปลอดภัย)


2
Java 7 ถูกติดตั้งภายใต้ / Library / Java / JavaVirtualMachines ขณะที่ Java 6 อยู่ภายใต้ / System / Library / Java / JavaVirtualMachines การลบ 1.6.0.jdk จาก / System / Library / Java / JavaVirtualMachines ผลลัพธ์ในกล่องโต้ตอบการติดตั้งจะปรากฏขึ้นอีกครั้ง สิ่งที่ดูเหมือนจะใช้ได้คือการสร้าง symlink 1.6.0.jdk (ใต้ / ระบบ / ... ) ไปยัง 1.7.0.jdk (ใต้ / Library / ... ) โปรแกรม Java ที่ไม่ตรวจสอบเวอร์ชัน Java รันได้ดี (Java Preferences block เมื่อเริ่มต้นเนื่องจากดูเหมือนว่าจะตรวจสอบว่าติดตั้ง Java 5 หรือ 6)
Nicolas

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