2012-11-28 23 views
7

क्या वहां कोई है जो ओआरएक्स जावा 1.7 के साथ ओएस एक्स 10.7.4 पर काम करने के लिए आरजेएए 0.9-3 प्राप्त करने में कामयाब रहा है?ओआरएक्स जावा 1.7 के साथ ओएस एक्स 10.7.4 पर काम करने के लिए आरजेएए 0.9-3 कैसे प्राप्त करें?

R version 2.15.2 (2012-10-26) -- "Trick or Treat" Platform 
x86_64-apple-darwin9.8.0/x86_64 (64-bit) 

java version "1.7.0_09" 
Java(TM) SE Runtime Environment (build 1.7.0_09-b05) 
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode) 

मैंने r.pava को install.packages फ़ंक्शन और आर 2.15.2 के साथ कमांड लाइन इंस्टॉल करके स्थापित किया है। मुझे कोई त्रुटि नहीं है।

$ R CMD INSTALL rJava 
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’ 
* installing *binary* package ‘rJava’ ... 

* DONE (rJava) 
$ 

अगर मैं जावा पसंद का उपयोग सूची में पहले 1.7 डाल दिया, लेकिन "पर" 1.6 छोड़ने के लिए, rJava हमेशा 1.6 शुरू होता है।

अगर मैं जावा पसंद का उपयोग 1.7 पहले डाल दिया और 1.6 बंद करने के लिए, rJava करता है:

> library(rJava) 
> .jinit() 
JavaVM: requested Java version ((null)) not available. Using Java at "" instead. 
JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib 
JavaVM FATAL: Failed to load the jvm library. 
Error in .jinit() : JNI_GetCreatedJavaVMs returned -1 
> 

हालांकि, इस प्रणाली का उपयोग करके, अपने आप में आर जावा 1.7 पाता है।

> system("java -version") 
java version "1.7.0_09" 
Java(TM) SE Runtime Environment (build 1.7.0_09-b05) 
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode) 
> 

1,7 /System/Library/Java/JavaConfig.plist में एक विशेष प्रविष्टि की आवश्यकता है?

क्या संस्करण निर्देशिका को 1.7 के लिए tweaking की आवश्यकता है? यह अजीब है कि चालू खाता है, जो 1.7 के साथ समाप्त होता है, जबकि CurrentJDK पथ 1.7 फ़ाइलों को सीधे ओर इशारा करते हुए के साथ या/usr/bin करने के लिए चलाए javareconf यहां तक ​​कि आर अध्यक्ष एवं प्रबंध निदेशक के साथ 1,6

$cd /System/Library/Frameworks/JavaVM.framework/Versions/ 
$ls -la 
total 64 
drwxr-xr-x 11 root wheel 374 Sep 26 10:10 . 
drwxr-xr-x 11 root wheel 374 Nov 26 09:24 .. 
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.4 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.4.2 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.5 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.5.0 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.6 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 Sep 26 10:09 1.6.0 -> CurrentJDK 
drwxr-xr-x 8 root wheel 272 Nov 26 09:24 A 
lrwxr-xr-x 1 root wheel 1 Sep 26 10:09 Current -> A 
lrwxr-xr-x 1 root wheel 59 Sep 26 10:09 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents 

को मैप किया है/को जाता है जावा पथ, जावा अभी भी जावा 1.7 नहीं ढूंढ या शुरू कर सकते हैं।

क्या 1.7 को JAVA_LD_LIBRARY_PATH चर सेट की आवश्यकता है?

Makeconf:JAVA = /usr/bin/java 
Makeconf:JAVAC = /usr/bin/javac 
Makeconf:JAVAH = /usr/bin/javah 
Makeconf:JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre 
Makeconf:JAVA_LD_LIBRARY_PATH = 
Makeconf:JAVA_LIBS = -framework JavaVM 
Makeconf:JAVA_CPPFLAGS = -I$(JAVA_HOME)/include 

Makeconf:JAR = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/jar 
Makeconf:JAVA = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/bin/java 
Makeconf:JAVAC = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/javac 
Makeconf:JAVAH = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/javah 
Makeconf:JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre 
Makeconf:JAVA_LD_LIBRARY_PATH = 
Makeconf:JAVA_LIBS = -framework JavaVM 
Makeconf:JAVA_CPPFLAGS = -I$(JAVA_HOME)/include 

किसी भी मदद

अद्यतन 1 के लिए धन्यवाद:

मैं आँकड़े-rosuda-devel सूची पर इस पूछा और साइमन Urbanek से निम्नलिखित प्रतिक्रिया मिली है। मुझे नहीं लगता कि जावा और लिनक्स में जावा 1.7 के स्रोत से संकलन की आवश्यकता के साथ एक ही समस्या है, क्योंकि हम इसे विंडोज और लिनक्स पर चला रहे हैं और उन्हें राजवा को संकलित करने की आवश्यकता नहीं है।

--- बोली शुरू

--- आप द्विआधारी जो प्रणाली जावा (जो आपके सिस्टम पर 1.6 है के खिलाफ संकलित किया गया है का उपयोग कर रहे हैं: मैं एक बार मैं यह कोशिश करने का मौका दिया वापस रिपोर्ट देंगे) - इसलिए यदि आप जावा 1.6 को हटाते हैं तो आप इसे तोड़ देंगे। यदि आप जावा 1.7 का उपयोग करना चाहते हैं, तो आपको जावा 1.7 के लिए आर को फिर से कॉन्फ़िगर करना होगा और उन सेटिंग्स का उपयोग करने के लिए rjava को फिर से संकलित करना होगा। ध्यान दें कि ओरेकल का जावा सिस्टम जावा (/System/Library/Frameworks/JavaVM.framework) की तुलना में पूरी तरह से अलग जगह (/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk) में रहता है, इसलिए यह अदला-बदली नहीं है।

इसके अलावा, ओरेकल जावा 1.7 एक ढांचा नहीं है, यह एक बड़ी गड़बड़ी है जिसे वास्तव में ओएस एक्स के लिए डिज़ाइन नहीं किया गया था, इसलिए आपको इसे लिनक्स जैसी सेटिंग्स में हाथ से सेट करना होगा - यह बहुत दर्दनाक है। इसके अलावा यह ओवरराइड की आवश्यकता है ... इसलिए यदि आप वास्तव में नीचे खरगोश की मांद जाना चाहते हैं, यह है कि क्या मेरे लिए काम किया है:

JAVA_LD_LIBRARY_PATH =/पुस्तकालय/जावा/JavaVirtualMachines/jdk1.7.0_09.jdk/सामग्री/होम/jre/lib/server JAVA_LIBS = '- एल/लाइब्रेरी/जावा/जावा वर्चुअल माचिन/jdk1.7.0_09.jdk/सामग्री/होम/जेआर/lib/server -ljvm' JAVA_CPPFLAGS = '- I/Library/Java/JavaVirtualMachines/jdk1। 7.0_09।जेडीके/सामग्री/होम/शामिल- I/लाइब्रेरी/जावा/जावा वर्चुअल माचिन/जेडीके 1.7.0_09.जेडीके/सामग्री/होम/शामिल/डार्विन 'आर 64 सीएमडी जवायरफ़ोन

फिर स्रोतों से आरजेएवी स्थापित करें (R64 -> install.packages ("rJava", type = 'स्रोत'))। ध्यान दें कि यह केवल 64-बिट है, तो यह केवल 64-बिट आर

---- अंत उद्धरण के साथ काम करेंगे ---

+1

मेरे पास कोई विशेष अंतर्दृष्टि नहीं है, लेकिन आप स्रोत से आरजेएवी स्थापित करना चाहते हैं, या आंकड़े-रोसुडा-डेवेल मेलिंग सूची को आजमा सकते हैं। –

+0

मैंने सूची में पूछा था और अभी एक जवाब प्राप्त हुआ है। मैं इसे उपरोक्त मूल प्रश्न में जोड़ दूंगा। – Tod

+0

साइमन के उत्तर के साथ इसे अपडेट करने के लिए धन्यवाद। अगर यह पार्श्व स्क्रॉलिंग के साथ कोड-प्रारूप में नहीं है तो इसे पढ़ना आसान है। –

उत्तर

5

यह मेरे लिए काम करता है:

स्थिति यह है कि मेरी जावा निर्देशिका सही ढंग से कॉन्फ़िगर नहीं किया गया था।

1) पहला रन: sudo R CMD javareconf। इसे निम्नलिखित होना चाहिए:

Java interpreter : /usr/bin/java 
Java version  : 1.7.0_40 
Java home path : /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre 
Java compiler : /usr/bin/javac 
Java headers gen.: /usr/bin/javah 
Java archive tool: /usr/bin/jar 
Non-system Java on OS X 

trying to compile and link a JNI progam 
detected JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin 
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm 
llvm-gcc-4.2 -arch x86_64 -std=gnu99 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/../include -I/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/../include/darwin -I/usr/local/include -fPIC -mtune=core2 -g -O2 -c conftest.c -o conftest.o 
llvm-gcc-4.2 -arch x86_64 -std=gnu99 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -L/usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation 


JAVA_HOME  : /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre 
Java library path: $(JAVA_HOME)/lib/server 
JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/darwin 
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm 
Updating Java configuration in /Library/Frameworks/R.framework/Resources 
Done. 

2) आर में, चलाएं: install.packages("rJava",type='source')। स्थापना होनी चाहिए (आरजेएवी)। sudo आर सामान्य उपयोगकर्ता के रूप में चलाने के लिये उपयोग करने

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre 

ऐसा नहीं है कि मैं सेट नहीं किया मुझे क्या हुआ: ध्यान दें कि, मैं

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home 

स्थापित करने के लिए जब मैं रूट के रूप में आर शुरू करने की आवश्यकता थी उपरोक्त/usr/bin/java * के प्रतीकात्मक लिंक जावा 1.7 (इसके बजाए संस्करण 1.6 के लिए निर्देशित) के अनुरूप हैं और वहां से सभी निराशा प्राप्त हुई है। लिंक इस तरह होना चाहिए: (ऐसा लगता है कि आर में केवल जावा, जावैक, जावा, और जार की आवश्यकता है)।

$ ls -l /usr/bin/ja* 
lrwxr-xr-x 1 root wheel 71 Oct 3 11:44 /usr/bin/jar -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/jar 
lrwxr-xr-x 1 root wheel 77 Oct 3 12:14 /usr/bin/jarsigner -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/jarsigner 
lrwxr-xr-x 1 root wheel 72 Oct 3 11:44 /usr/bin/java -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java 
lrwxr-xr-x 1 root wheel 73 Oct 3 11:42 /usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/javac 
lrwxr-xr-x 1 root wheel 75 Oct 3 12:15 /usr/bin/javadoc -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/javadoc 
lrwxr-xr-x 1 root wheel 73 Oct 3 11:44 /usr/bin/javah -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/javah 
lrwxr-xr-x 1 root wheel 73 Oct 3 12:15 /usr/bin/javap -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/javap 
lrwxr-xr-x 1 root wheel 74 Oct 3 12:15 /usr/bin/javaws -> /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/javaws 
+0

# 2 ने मेरी मदद की, खासकर "type = 'source'" को मेरे install.packages ("rJava", type = 'source') में जोड़कर। Xlsx पैकेज स्थापित करने का प्रयास करते समय मैं इसमें भाग गया। – user2771721

1

अंत में, कुछ काम किया!

साइमन शहरीक: क्या आप कृपया इन निर्देशों को राजवा वेबसाइट/क्रैन इंस्टॉल निर्देशों पर डाल सकते हैं ...? यह पहली बार है जब मैं इस खरगोश छेद से नीचे गया हूं और मुझे यकीन है कि मैं अकेला नहीं हूं।

JAVA_LD_LIBRARY_PATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/server JAVA_LIBS='-L/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/server -ljvm' JAVA_CPPFLAGS='-I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include/darwin' R CMD javareconf 
Java interpreter : /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/bin/java 
Java version  : 1.8.0_77 
Java home path : /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home 
Java compiler : /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/javac 
Java headers gen.: /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/javah 
Java archive tool: /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin/jar 
System Java on OS X 

trying to compile and link a JNI program 
detected JNI cpp flags : -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include/darwin 
detected JNI linker flags : -L/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/server -ljvm 
clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include/darwin -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include -fPIC -Wall -mtune=core2 -g -O2 -c conftest.c -o conftest.o 
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o conftest.so conftest.o -L/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/server -ljvm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation 


JAVA_HOME  : /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home 
Java library path: /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/server 
JNI cpp flags : -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/include/darwin 
JNI linker flags : -L/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/lib/server -ljvm 
Updating Java configuration in /Library/Frameworks/R.framework/Resources 
override rw-r--r-- root/admin for /Library/Frameworks/R.framework/Resources/etc/Makeconf? (y/n [n]) y 
override rw-r--r-- root/admin for /Library/Frameworks/R.framework/Resources/etc/ldpaths? (y/n [n]) y 
Done. 

R CMD INSTALL rJava_0.9-9.tar.gz