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

8

Ich versuche, das rJava-Paket unter Verwendung dieses Codes auf R auf meinem 14.10-Ubuntu zu installieren

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

Nach der Neuinstallation von jdk und dem Versuch, denselben Code erneut auszuführen, sind nur wenige Fehler im Zusammenhang mit Java aufgetreten, einschließlich jni-Problemen. Dieser Fehler ist aufgetreten

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

suchte nach Lösungen, um fast jeden zu finden, der (für x64) vorschlägt, 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. Kann ich noch etwas tun? Ich werde alle erforderlichen Details bereitstellen, und die Suche nach libjvm.so auf dem gesamten Computer führte dazu

/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/jdk1.8.25/jre/lib/amd64/server/libjvm.so
/usr/local/java/jre1.7.0_75/lib/amd64/server/libjvm.so
bräunen
quelle
1
Hatte das gleiche Problem. Das Ausführen von 'export LD_LIBRARY_PATH = / usr / lib / jvm / java-8-oracle / jre / lib / amd64 / server' hat es für mich gelöst
Juliusz

Antworten:

11

Das Ausführen der folgenden Schritte sollte Ihr Problem lösen:

$ export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
$ sudo R CMD javareconf
Samuel-Rosa
quelle
Es hat bei mir funktioniert. Thx
JoSeTe4ever
1
Der genaue Pfad hängt von der verwendeten Java-Version ab. Für mich war es LD_LIBRARY_PATH=/usr/lib/jvm/java-11-openjdk-amd64/lib/server/.
Stibu
2

Schritte:

  1. Finden Sie Ihren R-Standort. Es wird rsession-ld-library-pathin einer rserver.confDatei gespeichert . Oder einfach nur tun which R. Der Standort ist normalerweise /usr/lib64/R/liboder/usr/lib64/microsoft-r/3.3/lib64/R/lib

  2. Suchen Sie die libjvm.soDatei, die sich normalerweise im usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/serverPfad befindet, je nachdem, welchen JRE Sie verwenden. Überprüfen Sie echo $JAVA_HOME.

  3. Erstellen Sie einen Symlink mit ln -s sudo 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 neu

Tejas Lodaya
quelle