Hallo, ich habe Probleme mit dem rJava-Paket von cran.
Ich habe installiert
Sudo apt-get install openjdk-7-jdk
Sudo apt-get install r-cran-rjava
und rannte
Sudo R CMD javareconf
# Java interpreter : /usr/bin/Java
# Java version : 1.7.0_55
# Java home path : /usr/lib/jvm/Java-7-openjdk-AMD64/jre
# Java compiler : /usr/bin/javac
# Java headers gen.: /usr/bin/javah
# Java archive tool: /usr/bin/jar
Ich versuche dann, R auszuführen und rJava zu laden und erhalte den folgenden Fehler:
R
> library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/usr/lib/R/site-library/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: package or namespace load failed for ‘rJava’
Ich bin auf Ubuntu 14.04 64 Bit und benutze R Version 3.1.0 (2014-04-10) - "Spring Dance"
UPDATE: Eigentlich ist dies nicht OpenJDK-spezifisch, ich habe gerade Oracle Java 8 ausprobiert und das gleiche Ergebnis erzielt. Auch ich fand diese Problemumgehung hier , die ich nur ungern verwende, da es sich in der Tat um eine Problemumgehung handelt und nicht wirklich erklärt, warum sie notwendig ist. Das Paketsystem hätte meiner Meinung nach damit umgehen sollen. Scheint so, als wäre libjvm.so das Problem und ich habe es hier gefunden
/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-Oracle/jre/lib/AMD64/server/libjvm.so
und aus irgendeinem Grund findet rJava sie trotz Aktualisierung mit Sudo R CMD javareconf nicht.
UPDATE 2: Die Handlung verdickt sich: Wenn ich R als Sudo laufen lasse, funktioniert es.
Dankbar für Hinweise.
Ich hatte das gleiche Problem mit einer ähnlichen Konfiguration (R 3.1.0, Ubuntu 12.10, 32-Bit). Ich fand die Antwort darin, LD_LIBRARY_PATH richtig einzustellen, wie hier beschrieben: Fehler: Die installierten Pakete können gerade nicht geladen werden mit der Ausnahme, dass das betreffende Unterverzeichnis 'Client' und 'Server' ist. Jetzt stelle ich meine Umgebung so ein:
export Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386
export LD_LIBRARY_PATH=$Java_HOME/jre/lib/i386:$Java_HOME/jre/lib/i386/client
sie können dieses Problem lösen, indem Sie rstudio in super user öffnen
Sudo rstudio
dann in R laufen
install.packages('rJava')
Ich konnte dieses Problem mit dieser Antwort dauerhaft lösen: https://stackoverflow.com/a/25932828/3939832
Dies ist nützlich, wenn Sie Oracle Java 7 oder 8 installiert haben. Das Exportieren von Variablen war in meinem Fall keine dauerhafte Lösung. Sie sollten prüfen, was R als Umgebung verwendet:
Sys.getenv("Java_HOME")
und dann können Sie diese Umgebung verwenden, indem Sie eine Java.conf
-Datei on /etc/ld.so.conf.d/
erstellen, wie im obigen Antwortlink angegeben.
wenn Sie Oracle Java verwenden, verwenden Sie den folgenden Befehl:
Sudo R CMD javareconf
wird nicht helfen verwenden:
Sudo R CMD javareconf **Java_HOME**=(path where Java home is located)
Ich habe viele Dinge ausprobiert, aber nicht funktioniert. Dann versuchte ich es mit
Sudo rstudio
und dann
install.packages('rJava')
Es funktioniert. Coool
Die Installation des rJava-Pakets unter Ubuntu ist nicht ganz so einfach wie die meisten anderen R-Pakete. Einige kurze Hinweise dazu (Quelle: https://www.r-bloggers.com/installing-rjava-on-ubuntu/ ).
Install the Java Runtime Environment (JRE).
Sudo apt-get install -y default-jre
Install the Java Development Kit (JDK).
Sudo apt-get install -y default-jdk
Update where R expects to find various Java files.
Sudo R CMD javareconf
Install the package.
> install.packages("rJava")
If you have a RStudio session open, then exit and restart it. This is important (a running RStudio session will not pick up these changes!).