« Impossible d'exécuter un programme simple JNI » message d'erreur lors de l'installation Rjava sur R 3.6 pour ubuntu castor bionique

Jonno Bourne:

J'ai le problème très fréquent que Rjava n'installe pas correctement sur Ubuntu. Ce problème a été dsicussed à plusieurs endroits ici , ici , ici , pour ne citer que quelques - uns.

Le problème de base est que sur l'installation du package Rjava, le message d'erreur suivant est produit

configure: error: Unable to run a simple JNI program. Make sure you have configured R with Java support (see R documentation) and check config.log for failure reason.
Warning in system(cmd) : error in running command
ERROR: configuration failed for package ‘rJava’
* removing ‘/home/jonno/R/x86_64-pc-linux-gnu-library/3.6/rJava’

Il existe différentes solutions étroitement liées à ce problème. La plupart d'entre eux utilisent sudo R CMD javareconfpour configurer Java R ( également une -evariante ). Certains suggèrent de mettre le JAVA_HOMEchemin dans les variables d'environnement ( d' autres disent ne pas ). D' autres suggèrent de désinstaller et de réinstaller R tandis que d' autres suggèrent d' installer Rjava de Cran. Il y en a plusieurs qui reccomend update alternatives. Il existe d' autres variantes de ces solutions.

J'ai essayé des combinaisons de tous ce qui précède, et ai nulle part, donc je fais bien quelque chose de mal.

entrer des echo $JAVA_HOMErendements

/usr/lib/jvm/java-11-openjdk-amd64

mes etc / environnement se présente comme suit

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/$
MKL_THREADING_LAYER=GNU
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

Quand je lance R CMD javaconf, il ressemble à ceci

Java interpreter : /usr/lib/jvm/java-11-openjdk-amd64/java
Java version     : 11.0.4
Java home path   : /usr/lib/jvm/java-11-openjdk-amd64
Java compiler    : /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/lib/jvm/java-11-openjdk-amd64/bin/jar

trying to compile and link a JNI program 
detected JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
detected JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux    -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c conftest.c -o conftest.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o conftest.so conftest.o -L/usr/lib/jvm/java-11-openjdk-amd64/lib/server -ljvm -L/usr/lib/R/lib -lR


JAVA_HOME        : /usr/lib/jvm/java-11-openjdk-amd64
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /usr/lib/R
Done.

Qu'est-ce que je fais mal et comment puis-je obtenir Rjava installer correctement?

ÉDITER:

ayant réussi à installer avec succès à l' aide Rjava sudo apt-get install r-cran-rjavaje sais l'erreur suivante

Error: package or namespace load failed for ‘rJava’:
 .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
owainkenway:

Je l' ai étudié avec l'affiche originale (nous travaillons au même endroit) et le problème est que dans OpenJDK11 ils se sont déplacés autour de certains des .sofichiers que la machine virtuelle Java vit, en particulier , libjvm.soqui dans le paquet Ubuntu est maintenant /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/.

Cela signifie que même si vous installez le paquet Ubuntu pour Rjava avec apt install r-cran-rjavaelle échoue lorsque vous essayez de library(rJava).

La solution est d'ajouter /usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server/à votre $LD_LIBRARY_PATHen ajoutant:

export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server:$LD_LIBRARY_PATH

à la fin de votre ~/.bashrcet lance un nouveau shell (ou source ~/.bashrc).

C'est quelque chose que nous devions corriger nos installations centrales de OpenJDK , par exemple ici: https://github.com/UCL-RITS/rcps-buildscripts/blob/master/adoptopenjdk-11.0.3_install.sh#L46

Si vous voulez faire ce travail avec rstudio lancé à partir de Gnome, vous devez ajouter ce répertoire ldconfig.

Comme root(ou sudo) créer un fichier dans /etc/ld.so.conf.d/lequel vous devez appeler quelque chose avec un .confexemple d'extension java.confqui contient la ligne:

/usr/lib/jvm/java-1.11.0-openjdk-amd64/lib/server

Et puis comme rootcourir

ldconfig -v

Cela devrait ajouter le répertoire aux emplacements qui executables lancés par GNOME rechercher. Cette partie du problème ( les paramètres en ignorant GNOME dans bashrc) a été un problème dans Ubuntu depuis au moins 9,04 ( https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/366728/ ).

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=330595&siteId=1
conseillé
Classement