केवल जावा 7 के साथ माउंटेन शेर


39

मैंने माउंटेन लायन की एक साफ स्थापना की और JDK7 स्थापित किया।

java -versionटर्मिनल में java version "1.7.0_05"सही ढंग से रिटर्न , फिर भी जावा प्राथमिकताएं और कुछ अन्य जावा प्रोग्राम (जैसे ग्रहण) के परिणामस्वरूप जावा एसई 6 स्थापित करने का संकेत मिलता है।

मैं जावा 7 के साथ कमांड लाइन से पूरी तरह से ग्रहण शुरू कर सकता हूं।

वहाँ जावा 6 स्थापित करने के लिए बिना इस काम पाने के लिए एक रास्ता है?


1
यह वास्तव में गड़बड़ है। पृथ्वी पर यह अभी भी तय क्यों नहीं है? क्या ऐप्पल ने जावा अपडेट प्रक्रिया पर नियंत्रण क्यों छोड़ दिया, इसके लिए मुख्य प्रेरणा नहीं बढ़ी है? फिर भी OSX मुझे एक पुराना जावा इंस्टॉल करने के लिए क्यों प्रेरित करता है? ओह!
जेंटमैट

@gentmatt Java 7, Java 6 के लिए एक सरल अपडेट नहीं है - यह ओएस बदलने जैसा है। SOme चीजें बड़े संस्करण का उपयोग करके टूट जाएंगी और दोनों प्रमुख संस्करण सुरक्षा सुधारों के लिए अपडेट किए गए हैं
user151019

@gentmatt Apple अब जावा नहीं चाहता था और अनिवार्य रूप से इसे छोड़ दिया था। ओरेकल ने गेंद को चुनना चुना।
थोरबजोरन रावन एंडरसन

1
जावा 6 की आवश्यकता के लिए यह अभी भी बेवकूफी है, यह देखते हुए कि यह अब पदावनत है ...
डोनल फेलो

जवाबों:


27

JDK 7 को /Library/Java/JavaVirtualMachines/1.7.0.jdk, JDK 6 के तहत / सिस्टम / लाइब्रेरी / जावा / JavaVirtualMachines में स्थापित किया जाएगा।

जावा 6 को स्थापित करने के बजाय जावा 7 को स्वीकार करने के लिए ओएस एक्स को ट्रिक करने के लिए एक सरल सिम्कलिन पर्याप्त है।

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

अधिकांश जावा प्रोग्राम जावा 6 को स्थापित करने की आवश्यकता के बिना इस छोटे से हैक के साथ चलेंगे। ओएस एक्स के जावा प्राथमिकताएं (और शायद कुछ अन्य) यह शुरू होने पर जेवीएम के संस्करण की स्पष्ट रूप से जांच करने के लिए नहीं लगता है।


1
दूसरी पंक्ति में "सु" नहीं होना चाहिए, यह "सूदो ln -s ....." होना चाहिए
डेविड मोरालेस

3
मैंने अभी JDK 7u9 सहित एक नई स्थापना की थी, और इसे स्थापित किया गया था /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk; निर्देश ठीक काम किया अन्यथा।
जेफ्री विस्मैन 1

3
सिम्लिंक करने के लिए बाहर देखें ... Apple ने हाल ही में 1.6 सुरक्षा अद्यतन जारी किए हैं। यदि आप Apple से इस अपडेट को लागू करते हैं, तो सिमलिंक अपडेट को बेवकूफ बनाता है और 1.6 अपडेट को उस जगह स्थापित करता है, जहां से सिमिलर इंगित करता है, यानी Oracle का 1.7।

यदि जावा प्रोग्राम को जावा 6 की आवश्यकता होती है तो यह चीजों को तोड़ सकता है और 7 को नहीं तोड़ सकता है जब आप दूसरे संस्करण का उपयोग करते हैं।
user151019

यहाँ एक बेहतर उपाय है यदि आप Mavericks पर हैं: stackoverflow.com/questions/19563766/…
jedesah

4

नोट: यदि आपके पास कुछ ऐसा है जो वास्तव में java6 की आवश्यकता है और java7 के साथ काम नहीं करेगा, तो आप java7 स्थापित करने पर रोक लगाना चाहते हैं। इसका कारण यह है कि 6 और 7 दोनों को एक ही मैकिन्टोश पर रखने की कोशिश करना थोड़ा मुश्किल हो सकता है, क्योंकि 7 pkg कुछ सेब-6-जावा आइटमों के साथ कुछ गड़बड़ करता है, जैसा कि नीचे विस्तृत है। इसलिए, मैं इसे बाहर रोल करने से पहले एक ही मैक पर 6 और 7 रखने के कुछ चरण-दर-चरण निर्देशों की तलाश करूंगा ... http://reviews.cnet.com/8301-13727_7-57533880-263/ भी देखें जावा-वरीयताएँ-लापता-बाद-नवीनतम-ओएस-एक्स-जावा-अपडेट / अक्टूबर 18, 2012 पर।

विवरण jre-7u9-macosx-x64inosg में प्रीइंस्टॉल शेल स्क्रिप्ट सिर्फ नीचे दिए बिना, चेतावनी के बिना Apple प्रीफ-फलक (साथ ही प्लग-इन) को हटा देती है।

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

=== और पोस्ट इंस्टॉल स्क्रिप्ट एक सिमिलिंक === सेट करती है

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

अकेले जावा 7 के साथ माउंटेन शेर

आप सही रास्ते पर हैं ... 

जावा 6 स्थापित किए बिना

… प्रश्न में वर्णित के रूप में स्थापित करने का संकेत देता है, उम्मीद की जानी चाहिए।

तो मेरा संक्षिप्त जवाब है हां, आप अकेले जावा 7 हो सकते हैं; लेकिन जावा 6 की स्थापना के बिना नहीं।

प्रयत्न:

  1. जावा की Apple स्थापना की अनुमति दें
  2. नीचे दी गई दो निर्देशिकाओं में से, जावा के संस्करण (संस्करण) जो अब आवश्यक नहीं हैं:

    / पुस्तकालय / जावा / JavaVirtualMachines

    / सिस्टम / पुस्तकालय / जावा / JavaVirtualMachines

(इस तरह के एक मामले के लिए, मुझे लगता है कि आप /Systemसामान के साथ हस्तक्षेप न करने की सामान्य सलाह की उपेक्षा कर सकते हैं ।)


2
Java 7 / लाइब्रेरी / जावा / JavaVirtualMachines के अंतर्गत स्थापित किया गया है, जबकि Java 6 / System / Library / Java / JavaVirtualMachines के अंतर्गत है। अधिष्ठापन सिस्टम में से 1.6.0.jdk को हटाया जा रहा है / Java / JavaVirtualMachines फिर से पॉप अप हो रहा है। क्या लगता है काम करने के लिए एक सिमिंक 1.6.0.jdk (अंडर / सिस्टम / ...) को 1.7.0.jdk (अंडर / लाइब्रेरी / ...) करना है। जावा प्रोग्राम जो चेक नहीं करते हैं जावा संस्करण ठीक चलता है (जावा प्राथमिकताएं ब्लॉक शुरू होती हैं जैसा कि जावा 5 या 6 स्थापित है, यह जांचने के लिए लगता है)
निकोलस

कूल - क्या आप अपना जवाब जोड़ना चाहेंगे? कृपया मुझे वोट दें - मैं अपराध नहीं करूंगा - अनुमान सवाल के लिए स्पष्ट रूप से गलत था, एक वोट डाउन अन्य उपयोगकर्ताओं को जावा-संबंधित मुद्दों के लिए इसी तरह गलत अनुमान नहीं लगाने में मदद करेगा।
ग्राहम पेरिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.