C'è qualcuno che è riuscito a far funzionare rJava 0.9-3 su OS X 10.7.4 con Oracle Java 1.7?come far funzionare rJava 0.9-3 su OS X 10.7.4 con Oracle Java 1.7?
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)
Ho installato rJava utilizzando sia la funzione install.packages che l'installazione della riga di comando con R 2.15.2. Non ho errori.
$ R CMD INSTALL rJava
* installing to library ‘/Library/Frameworks/R.framework/Versions/2.15/Resources/library’
* installing *binary* package ‘rJava’ ...
* DONE (rJava)
$
Se uso Preferenze Java per mettere 1.7 il primo della lista, ma lasciare 1.6 "on", Rjava inizia sempre 1.6.
Se uso Preferenze Java mettere 1,7 prima e spegnere 1,6, Rjava fa questo:
> 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
>
Tuttavia, utilizzando la funzione di sistema, R per sé trova 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)
>
Vuol 1,7 bisogno di una voce speciale in /System/Library/Java/JavaConfig.plist?
La directory Versions deve essere modificata per 1.7? E 'strano che l'attuale va ad A, che finisce con il 1,7, mentre CurrentJDK è mappato a 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
Anche con R CMD javareconf correre con il percorso che punta al file 1,7, direttamente o per il/usr/bin/percorsi java, rJava non può ancora trovare o avviare Java 1.7.
La versione 1.7 ha bisogno della variabile 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
Grazie per qualsiasi aiuto
Update 1:
ho chiesto questo sulla lista statistiche-rosuda-devel e ha ricevuto la seguente risposta da Simon Urbanek. Non penso che Windows e Linux abbiano gli stessi problemi con la necessità di compilare dal sorgente per Java 1.7, dato che lo stiamo eseguendo su Windows e Linux e non abbiamo dovuto compilare rJava. Io riferire una volta ho avuto la possibilità di provare questo:
--- cominciano citazione ---
Si utilizza la binario che è compilato contro il sistema Java (che sul proprio sistema è 1.6), quindi se rimuovi Java 1.6 lo romperesti. Se si desidera utilizzare Java 1.7, sarà necessario riconfigurare R per Java 1.7 e ricompilare rJava per utilizzare tali impostazioni. Si noti che Java di Oracle vive in una posizione completamente diversa (/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk) rispetto al sistema Java (/System/Library/Frameworks/JavaVM.framework), quindi non è intercambiabile.
Inoltre, Oracle Java 1.7 non è un framework, è un gran caos che non è stato progettato per OS X, quindi è necessario impostarlo a mano su impostazioni come su Linux - è piuttosto doloroso. Inoltre richiede overrides ... quindi se vuoi davvero andare giù nella tana del coniglio, questo è ciò che ha funzionato per me:
JAVA_LD_LIBRARY_PATH =/Libreria/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/server JAVA_LIBS = '- L/Libreria/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/server -ljvm' JAVA_CPPFLAGS = '- I/Libreria/Java/JavaVirtualMachines/jdk1. 7.0_09.jdk/Contents/Home/include -I/Libreria/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/include/darwin 'R64 CMD javareconf
Quindi installare rJava dai sorgenti (R64 -> install.packages ("Rjava", type = 'sorgente')). Si noti che è solo a 64 bit, in modo da funzionare solo con i 64-bit R.
---- fine citazione ---
Non ho alcuna conoscenza particolare qui, ma potresti voler installare rJava dal sorgente, o provare la mailing list stats-rosuda-devel. –
L'ho chiesto sulla lista e ho appena ricevuto una risposta. Lo aggiungerò alla domanda originale sopra. – Tod
Grazie per l'aggiornamento che con la risposta di Simon. È più facile da leggere se non è in formato di codice con scorrimento laterale. –