2013-05-08 10 views
53

Nie mogę zadzwonić pod numer rJava w wersji R 3.0. Mam następujący komunikatNie można zainstalować rJava w wersji 3.0 w systemie Ubuntu 13.04

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

Dostaję błąd, gdy próbowałem ponownie zainstalować rJava pakietu. I pod warunkiem, że wyjście R CMD javareconf

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. 

używam Ubuntu 13.04. Próbowałem też apt-get install r-cran-rjava, co nie pomaga w rozwiązaniu problemu. Jeśli chodzi o jni.h było jakieś rozwiązanie here. Ale nie jestem pewien, jak mogę użyć rozwiązania tutaj.

Odpowiedz

75

Wpadłem na ten sam problem. Proponowane rozwiązanie było zainstalować openjdk-7- * poprzez

sudo apt-get install openjdk-7-* 

jest kolejną z

sudo R CMD javareconf 

i wtedy można zainstalować rJava do R poprzez install.packages("rJava").

Chociaż nie jest to najbardziej eleganckie rozwiązanie, wydaje się, że rozwiązało ono moje problemy z uzyskaniem rJavy do pracy.

+2

Dziękuję. Zadziałało. Próbowałem wczoraj zainstalować Javę. Próbowałem także Oracle Java, ale nie działał. Nie jestem pewien, czy instalowałem JRE lub restartowałem. – vinux

+9

nie ma szczęścia dla mnie: pierwsze dwa kroki działają bezbłędnie, potem na 'install.packages' otrzymuję:' error: nie można wczytać udostępnionego obiektu '/home/cboettig/R/x86_64-pc-linux-gnu-library/3.0 /rJava/libs/rJava.so ': '' libjvm.so: nie można otworzyć pliku obiektu współdzielonego: Brak takiego pliku lub katalogu '. Jakieś pomysły? – cboettig

+7

Wpadłem na ten sam problem - nie działało. Ostatecznie odkryłem, że po zainstalowaniu Java 1.7 musiałem powiedzieć Ubuntu, aby używał tego jako domyślnego - patrz [tutaj] (http://askubuntu.com/questions/64329/how-to-replace-openjdk-6-with-openjdk- 7) - używając 'update-java-alternatives -l', aby uzyskać listę zainstalowanych wersji java i' sudo update-java-alternatives -s java-1.7.0-openjdk-i386' na domyślną wartość 1.7. Następnie 'sudo R CMD javareconf' działał bezbłędnie i udało mi się' install.packages ("rJava") ' – JohnSG

27

Dla tych uzyskiwanie błąd:

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

I rozwiązać błąd lokalizowania bibliotekę w systemie i ich powiązanie /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

Instalacja rJava z pakietów dystrybucyjnych, jak zaproponowano w this askUbuntu answer działa również:

sudo apt-get install r-cran-rjava 

N OTE: wypróbowany z systemu Debian.