मैंने हाल ही में OSX Mountain Lion से Yosemite और R 3.1.3 से 3.2 तक "उन्नत" किया। अपग्रेड के तुरंत बाद, जब मैंने R या RStudio खोला, तो मुझे एक पॉप-अप संदेश मिला, जिसमें कहा गया था कि मुझे Java 6 स्थापित करने की आवश्यकता है। इसके अलावा, लोडिंग rJava
या कोई भी पैकेज जो rJava (जैसे xlsx
) पर निर्भर करता है, RStudio के क्रैश होने का कारण बना (R) क्रैश हो गया था जब मैंने R.app
सीधे इसे खोलकर कोशिश की )।
स्टैक ओवरफ्लो और अन्य जगहों पर पाए जाने वाले कुछ सुधारों (नीचे अधिक विवरण) की कोशिश करने के बाद, मैं एक ऐसे बिंदु पर हूं जहां लोडिंग rJava
या कोई भी पैकेज जो rJava
अब निर्भर नहीं करता है , आर को क्रैश करने का कारण बनता है, लेकिन निम्न त्रुटि के परिणामस्वरूप:
library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
Reason: image not found
Error: package or namespace load failed for ‘rJava’
हालांकि, अगर मैं कमांड लाइन से आर को आमंत्रित करता हूं और फिर लोड rJava
या किसी भी पैकेज पर निर्भर करता है rJava
, तो यह काम करने लगता है (या कम से कम मुझे कोई त्रुटि संदेश नहीं मिलता है)।
मैंने कई बार अलग-अलग प्रयास किए गए फ़िक्सेस, उनमें से कुछ को कुछ समय के लिए आज़माया है, और यह बिल्कुल याद नहीं कर सकता कि मैंने जो किया, वह किस क्रम में किया (यह एहसास नहीं था कि यह एक ऐसी स्थिति होगी और वास्तव में ट्रैक रखने वाला नहीं था) , लेकिन यहाँ इसका सार है:
निम्नलिखित को मेरे
.bash_profile
( इस SO उत्तर के अनुसार ) जोड़ा गया :निर्यात JAVA_HOME = "/ usr / libexec / java_home -v 1.8"
निर्यात LD_LIBRARY_PATH = $ JAVA_HOME / jre / lib / सर्वरकमांड लाइन से जावा को फिर से कॉन्फ़िगर करें:
सूदो आर सीएमडी जावरकोनफ-एन
जाँच की गई
options("java.home")
और पता चला कि यह निर्धारित किया गया थाNULL
। मैंने इसे निम्नलिखित ( इस SO प्रश्न के अनुसार ) सेट करने की कोशिश की :विकल्प ( "java.home" = "/ पुस्तकालय / जावा / JavaVirtualMachines / jdk1.8.0_45.jdk / सामग्री / होम / JRE")
नवीनतम जावा डेवलपमेंट किट स्थापित
rJava
किया और स्रोत से पुनः इंस्टॉल किया गया (यह याद नहीं कर सकता कि मुझे वह कहां मिला)।
इन सभी को आजमाते समय, मैं rJava
आर को क्रैश किए बिना लोड करने में सक्षम था , लेकिन इसके बजाय त्रुटि संदेश ऊपर पोस्ट किया गया। इसके अलावा, जब मैं RStudio को छोड़ता हूं, तो यह सामान्य रूप से बंद होने लगता है, लेकिन फिर "RStudio ने अप्रत्याशित रूप से छोड़ दिया" संदेश पॉप अप होगा, यह दर्शाता है कि कार्यक्रम बंद होने की कोशिश करते समय दुर्घटनाग्रस्त हो गया था।
मैंने अंततः OS X 2014-001 (Java 6) के लिए जावा को स्थापित करने का फैसला किया , क्योंकि मुझे ऐसा लग रहा था कि मैं विकल्पों से बाहर चल रहा हूं। अब, जब मैंने R या RStudio खोला, "इस सॉफ़्टवेयर को Java 6 की जरूरत है" पॉप-अप संदेश अब दिखाई नहीं देता है। हालाँकि, मुझे अभी भी .onLoad failed in loadNamespace() for 'rJava'
ऊपर पोस्ट में त्रुटि संदेश मिल रहा था ।
जिन कुछ पोस्टों पर मैंने पहले ही गौर कर लिया था, उनकी समीक्षा करने में, मैंने एक और एसओ उत्तर पर ध्यान दिया, जिसे मैंने पहले याद किया था, जिसने RStudio को निम्न कमांड लाइन कोड के साथ खोलने की सिफारिश की, जो RStudio को जावा का सही रास्ता देता है:
LD_LIBRARY_PATH = $ (/ usr / libexec / java_home) / jre / lib / सर्वर: ओपन -a RStudio
इसने एक RStudio विंडो खोली और मैं rJava
एक त्रुटि प्राप्त किए बिना लोड करने और पैकेज करने में सक्षम था ।
अंत में, मैंने कमांड लाइन से आर चलाने की कोशिश की (जो मैंने पहले नहीं किया था)। यह पता चलता है कि कमांड लाइन पर, लोडिंग rJava
या कोई भी पैकेज जो rJava
काम पर निर्भर करता है और कोई त्रुटि नहीं करता है।
इसलिए, मैं अब rJava
काम कर सकता हूं अगर मैं RStudio को कमांड लाइन से खोलता हूं जो RStudio को जावा पथ देता है (जैसा कि ऊपर उल्लेख किया गया है)। हालांकि, मैं अंतर्निहित समस्या को ठीक करने का एक तरीका खोजना चाहता हूं, जो कुछ भी हो सकता है, ताकि RStudio को सामान्य मैक तरीके से खोला जा सके, बिना कमांड लाइन कीचड़ के। मुझे यह भी चिंता है कि जावा के पुराने संस्करण को स्थापित करने से सड़क की समस्याएँ हो सकती हैं।
क्या किसी के पास इस मुद्दे का निदान और हल करने के बारे में कोई विचार है?
Yosemite
, इसलिए मुझे यकीन नहीं है। से संबंधित उत्तर के लिए नीचे देखें El Capitan
।
El Capitan
नीचे दिया गया समाधान उम्मीद के मुताबिक RStudio
लोड होते ही मददगार होता rJava
है।
otool -L /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
साझा पुस्तकालयों की सूची प्राप्त करने का प्रयास करें और वे कैसे हल हो जाएं। मुझे यकीन नहीं है कि कैसे रनटाइम कंटेंट की खोज की जाए @rpath
।
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
ट्रिक का उपयोग करने से पहले मिला है , लेकिन यह किसी भी अधिक काम नहीं करता है। मैंने इस मुद्दे के बारे में एक ब्लॉग पोस्ट लिखी है और इस समस्या का वर्णन किया है। मुझे आश्चर्य है कि अगर दूसरों को इस विन्यास में भी इस समस्या का अनुभव होता है या यदि यह मेरी गलती है।