web-dev-qa-db-fra.com

R: échec de l'installation du package rJava

Lors de l'installation de rJava à l'aide de la commande install.packages("rJava"), l'erreur suivante apparaît:

checking Java support in R... present:
interpreter : '/usr/bin/Java'
archiver    : '/usr/bin/jar'
compiler    : '/usr/bin/javac'
header prep.: '/usr/bin/javah'
cpp flags   : '-I/usr/lib/jvm/Java-6-Sun-1.6.0.20/jre/../include -I/usr/lib/jvm/Java-6-Sun-1.6.0.20/jre/../include/linux'
Java libs   : '-L/usr/lib/jvm/Java-6-Sun-1.6.0.20/jre/lib/AMD64/server -L/usr/lib/jvm/Java-6-Sun-1.6.0.20/jre/lib/AMD64 -L/usr/lib/jvm/Java-6-Sun-1.6.0.20/jre/../lib/AMD64 -L -L/usr/Java/packages/lib/AMD64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm'
checking whether JNI programs can be compiled... yes
checking JNI data types... configure: error: One or more JNI types differ from the corresponding native type. You may need to use non-standard compiler flags or a different compiler in order to fix this.
ERROR: configuration failed for package ‘rJava’

Le JDK Java est installé et Java -version renvoie le texte suivant:

$ Java -version
Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)

Lorsque je cherche Google pour l'erreur, je constate que d'autres personnes rencontrent le même problème, mais ne trouvent pas de solution autre que celle "installer l'ensemble du JDK, pas seulement le JRE", ce que j'ai déjà fait. 

L’autre chose que j’ai lue était d’exécuter Sudo R CMD javareconf qui fonctionne très bien, sans erreur. 

Des idées ce qu'est mon problème? 

[[EDIT]] Cela fait quelques mois que je n'ai pas ce problème. J'avais initialement résolu ce problème en modifiant mes chemins Java, comme illustré dans la réponse que j'ai postée ci-dessous. J'ai récemment rencontré le même problème avec une nouvelle installation Ubuntu. J'ai essayé la recommandation de Dirk d'utiliser apt-get pour installer le paquet rJava. Cela a fonctionné parfaitement. Ce que je n’avais pas compris au début, c’est que l’installation de paquets à l’aide de la méthode Ubuntu apt-get est fondamentalement différente du chargement du même paquet à l’aide de install.packages () dans R. Les paquets Ubuntu résolvent des problèmes que je n’avais ni compris ni apprécié. . 

99
JD Long

Il s'avère que mon problème était lié à ma variable d'environnement Java_HOME. Oui, choquant je sais. Mon réglage initial pour PATH et Java_HOME ressemblait à ceci:

export Java_HOME=/usr/lib/jvm/Java-6-Sun
export PATH=$PATH:$Java_HOME/bin

Et j'ai ajouté /jre donc ça ressemble à ça:

export Java_HOME=/usr/lib/jvm/Java-6-Sun/jre
export PATH=$PATH:$Java_HOME/bin

Tout en Java semblait fonctionner correctement sans le /jre mais rJava ne le ferait pas. Impair. 

71
JD Long

Ne serait pas 

apt-get install r-cran-rjava

ont été plus faciles? Vous auriez pu me demander à useR! :)

100
Dirk Eddelbuettel

Merci - votre suggestion sur $Java_HOME m'a conduit à une solution similaire:

Prompt$ unset Java_HOME

avant d'invoquer R.

18
Chris Pudney

J'ai rencontré le même problème, et cela a fonctionné après l'exécution des commandes ci-dessous.

export Java_LIBS="$Java_LIBS -ldl"
R CMD javareconf

Voir les détails à l'adresse http://www-01.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.install.doc/doc/install_install_r.html

14
Yanchang Zhao

Cela a fonctionné pour moi sur Ubuntu 12.04 et R version 3.0

cd /usr/lib/jvm/Java-6-Sun-1.6.0.26/include

c'est le répertoire qui a jni.h

Créez ensuite un lien symbolique vers un autre fichier d'en-tête requis (je suis trop paresseux pour savoir comment inclure plusieurs répertoires dans l'option Java_CPPFLAGS ci-dessous):

Sudo ln -s linux/jni_md.h .

Finalement

Sudo R CMD javareconf Java_CPPFLAGS=-I/usr/lib/jvm/Java-6-Sun-1.6.0.26/include
11
KevinH

ci-dessous est l’une de mes réponses à un autre message - erreur: impossible de charger les paquets installés tout de suite
(cela concerne aussi cette question)

Pour les utilisateurs de Linux (Ubuntu): Si vous avez Oracle-Java (7/8) installé. Ce sera à cet endroit que l'accès /usr/lib/jvm et Sudo est requis.

Créez le fichier /etc/ld.so.conf.d/Java.conf avec les entrées suivantes:

/usr/lib/jvm/Java-8-Oracle/jre/lib/AMD64
/usr/lib/jvm/Java-8-Oracle/jre/lib/AMD64/server

(Remplacez Java-8-Oracle par Java-7-Oracle en fonction de votre version de Java)

Ensuite:

Sudo ldconfig

Redémarrez RStudio puis installez le package rJava.

6
Tejus Prasad

Lancer R sous Gentoo sur un AMD64. Je suis passé à R 2.12.0

Version R 2.12.0 (2010-10-15) Copyright (C) 2010 La fondation R pour l'informatique statistique ISBN 3-900051-07-0 Plate-forme: x86_64-pc-linux-gnu ( 64 bits) et ces messages embêtants sont partis.

Jan Vandermeer

4
Jan Vandermeer

J'ai essayé d'installer openjdk-7- * mais j'ai quand même eu des problèmes pour installer rJava. Après le redémarrage de l'ordinateur, il n'y a aucun problème.

alors 

Sudo apt-get install openjdk-7-*


RESTART after installing Java, then try to install package "rJava" in R
2
Vahid Mir

Le package rJava recherche le dossier /usr/lib/jvm/default-Java/. Mais ce n'est pas disponible par défaut. Ce dossier a un lien symbolique pour le Java par défaut configuré pour le système.

Pour activer Java par défaut, installez les packages suivants:

Sudo apt-get install default-jre default-jre-headless

Testé sur Ubuntu 17.04 avec CRAN R 3.4.1

2
Gustavo Garcia

Ce qui a fonctionné pour moi a été de changer Java_HOME à partir du fichier /usr/lib/R/etc/javaconf

J'ai d'abord vérifié quelle était ma version de Java activée: Sudo update-alternatives --config Java. Dans mon cas, c'était Java-8-Oracle

J'ai ouvert le fichier /usr/lib/R/etc/javaconf et remplacé default-Java par Java-8-Oracle:

${Java_HOME=/usr/lib/jvm/default-Java}

remplacé par :

${Java_HOME=/usr/lib/jvm/Java-8-Oracle}

Et puis Sudo R CMD javareconf

J'ai redémarré RStudio et j'ai ensuite pu installer rJava.

2
Kevin Zarca

Je l’ai obtenu en téléchargeant: https://cran.r-project.org/src/contrib/rJava_0.9-8.tar.gz et l’exécution de la commande R CMD install rJava_0.9-8.tar. gz

1
user3136869

ce que je fais est ici:

  1. dans /etc/apt/sources.list, ajoutez:

    deb http://ftp.de.debian.org/debian sid main

Note: le rjava devrait être la dernière version 

2 run: Sudo apt-get update Sudo apt-get installer r-cran-rjava 

Une fois que vous avez mis à jour l'ancienne version de rjava, vous pouvez installer rhdfs_1.0.8.

1
user3119404

Voilà comment je le fais fonctionner:

Sous Linux (Ubuntu 16.04)

Sudo apt-get install default-jre
Sudo apt-get install default-jdk
Sudo R CMD javareconf

dans R:

install.packages("rJava")
1
Jim Chen

J'avais le même problème lorsque j'utilisais Windows 10. J'ai résolu le problème en suivant la procédure ci-dessous.

  1. Téléchargez Java à partir de https://Java.com/en/download/windows-64bit.jsp pour Windows 64 bits\Install it
  2. Téléchargez le kit de développement Java à partir de https://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html pour Windows 64 bits\Installez-le
  3. Cliquez ensuite avec le bouton droit de la souris sur l’icône «Ce PC» dans le bureau\Propriétés\Paramètres système avancés\Avancé\Variables d’environnement\Sous Variables système, sélectionnez Chemin\Cliquez Édition\Cliquez sur Nouveau\Copier et coller les chemins "C:\Programmes\Java\jdk1 .8.0_201\bin ”et“ C:\Program Files\Java\jre1.8.0_201\bin ”(sans guillemet)\OK\OK\OK

Remarque: jdk1.8.0_201 et jre1.8.0_201 seront modifiés en fonction de la version du kit de développement Java et de Java.

  1. Dans la fenêtre Variables d'environnement, accédez à Variables utilisateur pour Utilisateur\Cliquez sur Nouveau\Nom de la variable comme "Java_HOME" et la valeur de la variable comme "C:\Programmes\Java\jdk1.8.0_201\bin"\Appuyez sur OK.

Pour vérifier l’installation, ouvrez CMD\Tapez javac\Appuyez sur Entrée, puis sur Tapez Java\appuyez sur Entrée Il affichera  enter image description here

Dans RStudio run 

Sys.setenv(Java_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")

Note: jdk1.8.0_201 sera modifié en fonction de la version du kit de développement Java.

Maintenant, vous pouvez installer et charger le paquet rJava sans aucun problème.

0
Bappa Das

Le problème était que rJava ne serait pas installé dans RStudio (Version 1.0.136). Ce qui suit a fonctionné pour moi (macOS Sierra version 10.12.6) (trouvé ici ):

Étape 1: Téléchargez et installez javaforosx.dmg à partir de ici

Étape 2: Ensuite, lancez la commande depuis RStudio:

install.packages("rJava", type = 'source')
0
Nilesh Ingle