Yalnızca Java 7 ile Dağ Aslanı


39

Temiz bir Mountain Lion kurulumu gerçekleştirdim ve JDK7'yi kurdum.

java -versionTerminal'de java version "1.7.0_05"doğru şekilde dönüyorsa, hala Java Tercihleri ​​ve diğer bazı Java programları (Eclipse gibi) Java SE 6'yı yüklemenizi ister.

Eclipse'i Java 7 ile komut satırından mükemmel şekilde başlatabilirim.

Java 6'yı yüklemek zorunda kalmadan bu çalışmanın bir yolu var mı?


1
Bu gerçekten berbat. Neden bu hala sabit değil? Daha fazla güvenlik, Apple'ın Java güncelleme prosedürü üzerindeki kontrolünden neden vazgeçtiği için ana motivasyon değil midir? O zaman neden OSX hala eski bir Java yüklememi istiyor? Olmadı!
Gentmatt

@gentmatt Java 7, Java 6 için basit bir güncelleme değildir - işletim sistemlerini değiştirmek gibidir. SOme işleri daha büyük bir sürümü kullanarak bozulur ve her iki büyük sürüm de güvenlik düzeltmeleri için güncellenir
user151019

@gentmatt Apple artık Java'yı istemedi ve esasen terk etti. Oracle topu seçti.
Thorbjørn Ravn Andersen

1
Java 6'ya ihtiyaç duyulması hala aptalca, şimdi artık kullanımdan kaldırıldı…
Donal Fellows

Yanıtlar:


27

JDK 7, /Library/Java/JavaVirtualMachines/1.7.0.jdk, JDK 6 altında / System / Library / Java / JavaVirtualMachines altına yüklenecek.

OS X'i, Java 6'yı yüklemeyi önermek yerine Java 7'yi kabul etmesi için kandırmak yeterlidir:

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 Programlarının çoğu, Java 6'yı yüklemeye gerek kalmadan bu küçük kesimle çalışacaktır. OS X'in Java Tercihleri ​​(ve belki de diğerleri), başlatıldığında JVM'nin sürümünü açık bir şekilde kontrol edecek gibi görünmeyecektir.


1
İkinci satır "su" olmamalı, "sudo ln -s ....." olmalı
David Morales

3
Sadece JDK 7u9 da dahil olmak üzere yeni bir kurulum yaptım /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk; talimatlar aksi takdirde iyi çalıştı.
Geoffrey Wiseman

3
Sembolik bağlantıyı yaparken dikkat edin ... Apple son zamanlarda 1.6 güvenlik güncellemesi yayınladı. Bu güncellemeyi Apple'dan uygularsanız, bağlantı linki güncellemeyi kandırabilir ve bağlantı noktasının işaret ettiği yere 1.6 güncellemesini yükler, yani Oracle'ın 1.7.

Bir Java programı Java 6 gerektiriyorsa ve bu, 7 sürümünü değil, diğer sürümü kullandığınızda bozulabileceği için bu durum kırılabilir.
user151019

Mavericks'te iseniz işte size daha iyi bir çözüm: stackoverflow.com/questions/19563766/…
jedesah

4

Not: java6'ya gerçekten ihtiyaç duyan ve java7 ile çalışmayacak bir şeye sahipseniz, java7'yi yüklemeye devam etmek isteyebilirsiniz. Bunun nedeni, 7 pkg, aşağıda ayrıntılı olarak anlatıldığı gibi, bazı elma-6-java maddelerinin bazılarını karıştırdığı için, hem 6 hem de 7'yi aynı macintosh'ta tutmaya çalışmak biraz zor olabilir. Bu yüzden, bunu açmadan önce 6 ve 7'yi aynı mac'ta tutmaya ilişkin adım adım talimatlar arayacağım ... Ayrıca bkz. Http://reviews.cnet.com/8301-13727_7-57533880-263/ java-tercihler-eksik-sonra-son-os-x-java-update / on 18 Ekim 2012 tarihinde.

DETAYLAR jre-7u9-macosx-x64.dmg içindeki ön kurulum kabuk betiği, Apple ön panelini (eklentinin yanı sıra) yalnızca uyarı vermeden kaldırır.

#!/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

=== Post install betiği bir link veriyor ===

#!/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

Java 7 ile dağ aslanı yalnız

Doğru yoldasın… 

Java 6'yı yüklemeden

… Soruda açıklandığı gibi kurulum istemleri bekleniyordu.

Yani kısa cevabım evet, yalnız Java 7'ye sahip olabilirsiniz; fakat Java 6 kurulumu yapılmadan olmaz.

Deneyin:

  1. Apple'ın Java kurulumuna izin ver
  2. Artık gerekmeyen Java sürümlerini aşağıdaki iki dizinden kaldırın:

    / Library / Java / JavaVirtualMachines

    / System / Library / Java / JavaVirtualMachines

(Böyle bir durumda, olaylara müdahale etmemek için normal önerileri görmezden gelebilirsiniz /System.)


2
Java 7, / Library / Java / JavaVirtualMachines altında, Java 6 ise / System / Library / Java / JavaVirtualMachines altında kuruluyor. / 6 /. İşe yarayan şey, 1.6.0.jdk (/ System / ... altında) 1.7.0.jdk (/ Library / ... altında) sembolik bağlantısı oluşturmaktır. Java sürümünü kontrol etmeyen Java Programları iyi çalışıyor (Java 5 veya 6'nın yüklü olup olmadığını kontrol ediyor gibi göründüğü gibi Java Tercihleri ​​engelliyor)
Nicolas,

Harika - kendi cevabını eklemek ister misin? Lütfen benimkileri aşağıya oyla - almamayacağım - tahmin soru açıkça yanlıştı, aşağı oylama diğer kullanıcıların Java ile ilgili konularda benzer şekilde yanlış tahminler yapmamalarına yardımcı olacak.
Graham Perrin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.