2013-05-08 11 views
53

Ich kann rJava nicht in R 3.0 anrufen. Ich habe die folgende MeldungRjava kann nicht in R 3.0 unter Ubuntu installiert werden. 13.04

Error: package ‘rJava’ was built before R 3.0.0: please re-install it 

Ich erhalte Fehler, als ich versuchte rJava Paket neu zu installieren. Ich habe die Ausgabe von R CMD javareconf

bereitgestellt
Java interpreter : /usr/bin/java 
Java version  : 1.7.0_21 
Java home path : /usr/lib/jvm/java-7-openjdk-i386/jre 
Java compiler : /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javac 
Java headers gen.: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/javah 
Java archive tool: /usr/lib/jvm/java-7-openjdk-i386/jre/../bin/jar 

trying to compile and link a JNI progam 
detected JNI cpp flags : 
detected JNI linker flags : 
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG  -fpic -O2 -pipe -g -c conftest.c -o conftest.o 
conftest.c:1:17: fatal error: jni.h: No such file or directory 
compilation terminated. 
make: *** [conftest.o] Error 1 
Unable to compile a JNI program 


Java library path: 
JNI cpp flags : 
JNI linker flags : 
Updating Java configuration in /usr/lib/R 
Done. 

Ich bin mit Ubuntu 13.04. Ich versuchte auch apt-get install r-cran-rjava, die nicht hilft, das Problem zu lösen. In Bezug auf jni.h gab es eine Lösung here. Aber nicht sicher, wie kann ich die Lösung hier verwenden.

Antwort

75

Ich lief genau das gleiche Problem. Meine Lösung war die openjdk-7- * via

sudo apt-get install openjdk-7-* 

Gefolgt dass mit

sudo R CMD javareconf 

und ich war dann in der Lage zu installieren rjava in R über install.packages("rJava") zu installieren.

Während vielleicht nicht die eleganteste Lösung scheint es, meine Probleme mit rJava zu arbeiten gelöst zu haben.

+2

Vielen Dank. Es funktionierte. Ich habe versucht, Java gestern zu installieren. Ich versuchte auch Oracle Java, aber nicht funktioniert. Nicht sicher, ob ich JRE installiert habe oder den Neustart durchgeführt habe. – vinux

+9

kein Glück für mich: erste zwei Schritte ohne Fehler ausgeführt, dann auf 'install.packages' erhalte ich:' Fehler: nicht in der Lage gemeinsam genutztes Objekt zu laden ‚/home/cboettig/R/x86_64-pc-linux-gnu-library/3.0 /rJava/libs/rJava.so ': '' libjvm.so: Datei kann nicht geöffnet werden: Keine solche Datei oder kein Verzeichnis'. Irgendwelche Ideen? – cboettig

+7

Ich stieß auf das gleiche Problem - hat nicht funktioniert. Endlich fand ich, dass ich nach der Installation von Java 1.7 Ubuntu mitteilen musste, dass ich das standardmäßig verwenden soll - siehe [hier] (http://askubuntu.com/questions/64329/how-to-replace-openjdk-6-with-openjdk- 7) - Verwenden von 'update-java-alternatives -l', um die Liste der installierten Java-Versionen zu erhalten, und' sudo update-java-alternatives -s java-1.7.0-openjdk-i386' auf den Standardwert 1.7. Danach lief 'sudo R CMD javareconf' ohne Fehler und ich konnte' install.packages ("rJava") ' – JohnSG

27

Für diejenigen, die Störung zu erhalten:

error: unable to load shared object '/some/dir/rJava/libs/rJava.so': libjvm.so: 
cannot open shared object file: No such file or directory 

ich den Fehler behoben, die Bibliothek im System lokalisieren und deren Verknüpfung mit /usr/lib:

$sudo updatedb 
$locate libjvm.so 
/usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so 
/usr/lib/debug/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so 
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/zero/libjvm.so 
$sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib/ 
1

Installation rjava von den Verteilungspaketen wie in this askUbuntu answer vorgeschlagen funktioniert auch:

sudo apt-get install r-cran-rjava 

N OTE: versucht von einem Debian-System.