wake-up-neo.net

libjvm.so: freigegebene Objektdatei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis

Versuch, das rJava-Paket unter Verwendung dieses Codes auf meinem 14.10 ubuntu zu installieren

if (!require(rJava)) install.packages('rJava')

bekam einige Fehler im Zusammenhang mit Java, einschließlich jni-Problemen, nachdem der jdk erneut installiert wurde, und derselbe Code erneut ausgeführt wurde. Dieser Fehler wurde angezeigt

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/local/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpfFjrp0/downloaded_packages’
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘rJava’

nach Lösungen gesucht, um fast alle zu finden, die (für x64) vorschlagen, diese Befehle auszuführen

export LD_LIBRARY_PATH=/usr/lib/jvm/Java-8-Oracle/lib/AMD64:/usr/lib/jvm/Java-8-Oracle/jre/lib/AMD64/server
Sudo R CMD javareconf 

aber das hat nicht funktioniert. Gibt es noch etwas, was ich tun kann? Ich werde alle erforderlichen Details angeben

19
tan

Ich habe dieselbe Fehlermeldung erhalten, als ich versuchte, rJava in RStudio zu laden. Die folgende Lösung funktionierte für mich

1) Sudo rstudio-server stop
2) export LD_LIBRARY_PATH=/usr/lib/jvm/jre/lib/AMD64:/usr/lib/jvm/jre/lib/AMD64/default
3) Sudo rstudio-server start

Nach den oben genannten Schritten konnte ich die folgenden Schritte erfolgreich in RStudio ausführen

> library("DBI")
> library("rJava")
> library("RJDBC")
16
minhas23

Um dies zu lösen, 

  1. Lauf

    Sudo R CMD Javareconf

  2. Fügen Sie Folgendes zu/etc/environment hinzu. Diese Einstellung wird dann bei jedem Neustart der Maschine festgelegt. 

    LD_LIBRARY_PATH =/usr/lib/jvm/default-Java/jre/lib/AMD64/server / 

    (wechsle zu deinem Pfad) 

  3. Führen Sie Folgendes aus:

    source/etc/environment

  4. starten Sie den rstudio-Server neu
14

falls keine der oben genannten Funktionen funktioniert, versuchen Sie es und danken Sie mir später (generische Antwort) :)

R CMD javareconf -e
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Java_LD_LIBRARY_PATH
6
Haktan Suren
  • Ein ähnliches Problem wurde behoben, indem der folgende Befehl jedes Mal ausgeführt wurde, wenn ich RStudio öffnen möchte. Gehen Sie zu dem Ordner, der die ausführbare Datei für das Studio enthält, öffnen Sie das Terminal und geben Sie Folgendes ein:

    LD_LIBRARY_PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Inhalt/Home/jre/lib/server: Öffnen Sie -a rstudio

    Natürlich müssen Sie den Pfad entsprechend Ihrer Java-Version ändern.

  • Wenn die vorherige Lösung nicht funktioniert, lesen Sie diesen Artikel: http://allanino.me/blog/programming/installing-some-r-packages/ .

  • Wenn diese Lösung auch nicht funktioniert, besteht die letzte Möglichkeit, dass Sie rJava installieren, indem Sie sie aus dem Quellcode kompilieren.

2

Wenn jetzt jemand hierher kommt, versuchen Sie bitte den folgenden Ansatz:

Schritte:

  1. Finden Sie Ihren R-Standort. Es wird in rsession-ld-library-path in rserver.conf-Datei gespeichert. Oder einfach which R. Die Position ist normalerweise /usr/lib64/R/lib oder /usr/lib64/Microsoft-r/3.3/lib64/R/lib

  2. Suchen Sie die libjvm.so-Datei, die sich normalerweise im usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/server-Pfad befindet, je nachdem, welche Version Sie verwenden. Überprüfen Sie die $ Java_HOME-Umgebung.

  3. Erstellen Sie einen Symlink mit ln -sSudo ln -s /usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/server/libjvm.so /usr/lib64/Microsoft-r/3.3/lib64/R/lib/libjvm.so

  4. Starten Sie den R-Server erneut

2
Tejas Lodaya

Prüfen Sie, ob $Java_HOME auf den richtigen Ort zeigt

echo $Java_HOME

Ich verwende openjdk, jedoch zeigte $Java_HOME auf einen nicht vorhandenen Oracle-Java-Ordner.

Nach dem Fixieren von $Java_HOME ausführen

Sudo R CMD javareconf

Überprüfen Sie die Ausgabe. Java headers gen. sollte auf /usr/bin/javah zeigen. Zum Beispiel:

[email protected] ~ $ Sudo R CMD javareconf
Java interpreter : /usr/lib/jvm/default-Java/bin/Java
Java version     : 11.0.1
Java home path   : /usr/lib/jvm/default-Java
Java compiler    : /usr/lib/jvm/default-Java/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/lib/jvm/default-Java/bin/jar

Danach kann ich das rJava-Paket installieren und laden.

0
djhurio

Nun, da @ user3673 auf this hingewiesen hat, war die Lösung für mich die folgende Zeile in /usr/lib/R/etc/ldpaths zu ändern:

: ${R_Java_LD_LIBRARY_PATH=${Java_HOME}/lib/AMD64/server}

von diesem:

: ${R_Java_LD_LIBRARY_PATH=${Java_HOME}/jre/lib/AMD64/server}

0
Fábio