wake-up-neo.com

Warum funktioniert rJava unter Ubuntu 14.04 mit OpenJDK 7 nicht?

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.

16
Dr. Mike

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
7
persistentNoob

sie können dieses Problem lösen, indem Sie rstudio in super user öffnen

Sudo rstudio

dann in R laufen

install.packages('rJava')
8
sagarambat

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.

7
lapisdecor

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)
5
sourav karwa

Ich habe viele Dinge ausprobiert, aber nicht funktioniert. Dann versuchte ich es mit 

Sudo rstudio

und dann

install.packages('rJava')

Es funktioniert. Coool

1
Ajay Jadhav

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!).
0
Jyoti