Gibt es jemanden da draußen, der es geschafft hat, rJava 0.9-3 unter OS X 10.7.4 mit Oracle Java 1.7 zu betreiben?Wie bekomme ich rJava 0.9-3 um unter OS X 10.7.4 mit Oracle Java 1.7 zu arbeiten?
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)
Ich habe rjava sowohl die install.packages-Funktion installiert und die Befehlszeile mit R 2.15.2 installieren. Ich bekomme keine Fehler.
$ R CMD INSTALL rJava
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *binary* package ‘rJava’ ...
* DONE (rJava)
$
Wenn ich Java-Einstellungen verwenden 1.7 zuerst auf die Liste zu setzen, aber lassen 1.6 „auf“ rjava beginnt immer 1,6.
Wenn ich Java-Einstellungen verwenden 1.7 erste und setzen 1,6 auszuschalten, rjava tut dies:
> 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
>
jedoch die Systemfunktion, R selbst findet Java 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)
>
Braucht 1.7 einen speziellen Eintrag in /System/Library/Java/JavaConfig.plist?
Muss das Versions-Verzeichnis für 1.7 angepasst werden? Es ist seltsam, dass Strom auf A geht, die mit 1,7 bis endet, während CurrentJDK bis 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
Auch mit R CMD abgebildet wird javareconf laufen mit der Weg direkt an die 1,7-Dateien zeigen oder in das Verzeichnis/usr/bin/Java-Pfade, rJava kann Java 1.7 immer noch nicht finden oder starten.
Benötigt 1.7 die JAVA_LD_LIBRARY_PATH-Variable?
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
Vielen Dank für jede Hilfe
Update 1:
fragte ich dies auf der Statistik-rosuda-devel Liste und erhielt folgende Antwort von Simon Urbanek. Ich denke nicht, dass Windows und Linux die gleichen Probleme mit der Kompilierung von Source für Java 1.7 haben, da wir dies unter Windows und Linux ausführen und rJava nicht kompilieren müssen. Ich werde berichten, wenn ich eine Chance haben, versuchen Sie dies:
--- Zitat --- beginnen
Sie verwenden den binären, die gegen System Java kompiliert wird (die auf Ihrem System 1.6) - Wenn Sie Java 1.6 entfernen, werden Sie es brechen. Wenn Sie Java 1.7 verwenden möchten, müssen Sie R für Java 1.7 neu konfigurieren und rJava neu kompilieren, um diese Einstellungen zu verwenden. Beachten Sie, dass Oracle Java an einem völlig anderen Ort (/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk) als das System Java (/System/Library/Frameworks/JavaVM.framework) lebt und daher nicht austauschbar ist.
Außerdem ist Oracle Java 1.7 kein Framework, es ist ein großes Durcheinander, das nicht wirklich für OS X entworfen wurde, also muss man es per Hand auf Einstellungen wie auf Linux setzen - es ist ziemlich schmerzhaft. Es erfordert auch Überschreibungen ... also, wenn Sie wirklich das Kaninchen Loch gehen wollen, das ist, was für mich funktionierte:
JAVA_LD_LIBRARY_PATH =/Bibliothek/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Inhalt/Home/jre/lib/server JAVA_LIBS = '- L/Bibliothek/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Inhalt/Home/jre/lib/server -ljvm' JAVA_CPPFLAGS = '- I/Bibliothek/Java/JavaVirtualMachines/jdk1. 7.0_09.jdk/Contents/Home/umfassen -I/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/include/Darwins R64 CMD javareconf
Dann rjava aus Quellen (R64 installieren -> install.packages ("rJava", Typ = 'Quelle')). Beachten Sie, dass es nur 64-Bit ist, so wird es nur mit 64-Bit R.
---- Ende Zitat --- arbeiten
Ich habe hier keinen besonderen Einblick, aber Sie können rJava aus der Quelle installieren, oder versuchen Sie die stats-rosuda-devel Mailingliste. –
Ich habe auf der Liste gefragt und gerade eine Antwort erhalten. Ich füge es zur ursprünglichen Frage oben hinzu. – Tod
Danke für die Aktualisierung mit Simons Antwort. Es ist einfacher zu lesen, wenn es nicht im Code-Format mit seitlichem Scrollen ist. –