Problèmes lors de la tentative de chargement d'un package dans R en raison de rJava

93

Lorsque je tape require(xlsx)pour charger le package xlsxdans R, les messages suivants s'affichent:

> require(xlsx)
Loading required package: xlsx
Loading required package: xlsxjars
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
Failed with error:  ‘package ‘rJava’ could not be loaded’

J'ai également essayé de charger le rJavapackage manuellement mais j'ai reçu ce message d'erreur:

require(rJava)
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.

Avez-vous des suggestions sur la façon de résoudre le problème?

Pritam Kar
la source
4
Essayez d'installer rJava... Lire ceci
agstudy
6
Quelle plateforme? Si Windows, cela peut être utile.
dardisco
De plus, votre problème vous permet d'abord d'enregistrer votre fichier .xlsx dans un csv, puis d'utiliser read.csv, plutôt que d'essayer de lire le fichier .xlsx
generic_user
2
Si la dernière réponse listée (16 votes à ce stade) l'a résolu pour vous, veuillez marquer la réponse comme acceptée.
Slak
J'ai également rencontré ce problème, mais je l'ai détourné en utilisant le readxlpackage de Hadley Wickham . Plus de discussion à propos d'ici - impossible d'installer libraryxlsx dans r et de rechercher une alternative
Ben

Réponses:

124

La raison est probablement liée au fait que vous utilisez un système d'exploitation 64 bits et une version R mais que Java n'est pas installé avec la même architecture. Ce que vous devez faire est de télécharger Java 64 bits à partir de cette page: https://www.java.com/en/download/manual.jsp

Après cela, essayez de recharger le xlsxpackage. Vous ne devriez pas avoir besoin de redémarrer R.

Gianluca
la source
2
(+1) Je ne suis pas sûr que le message de R indique complètement que c'est le problème, mais c'était le cas pour moi! Pour être sûr, vous pouvez vérifier. Si vous exécutez un système d'exploitation 64 bits et un R 64 bits, exécutez la ligne de commande et essayez java -d64 version. Si vous utilisez Java 64 bits, cela peut être un problème de chemin système.
AdamO
3
Voulez-vous dire java -d64 -version?
Harrison
8

J'ai eu un problème similaire, ce qui a fonctionné pour moi était de définir JAVA_HOME. Je l'ai d'abord fatigué en R:

Sys.setenv(JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_101/")

Et quand cela a fonctionné, je l'ai défini dans Propriétés système -> Avancé -> Variables d'environnement en ajoutant une nouvelle variable système. J'ai ensuite redémarré R / RStudio et tout a fonctionné.

Lauren Fitch
la source
7

C'est parce que l'une des versions de Java (32 bits / 64 bits) est absente de votre ordinateur. Essayez d'installer les deux Jdks et exécutez le code.
Après avoir installé les Jdks, ouvrez R et tapez le code

system("java -version")

Cela vous donnera la version de Jdk installée. Ensuite, essayez de charger le package rJava. Cela a fonctionné pour moi.

Edwin Vivek N
la source
4

J'ai eu un problème similaire. Cela est dû au package dépendant 'rJava'. Ce problème peut être surmonté en redirigeant le R pour utiliser un autre JAVA_HOME.

if(Sys.getenv("JAVA_HOME")!=""){
    Sys.setenv(JAVA_HOME="")
}
library(rJava)

Cela a fonctionné pour moi.

Arul Samuel Rajkumar
la source
4

Si vous rencontrez cette erreur dans RStudio, utilisez le code environnemental de Lauren ci-dessus et remplacez votre version R par la version 32 bits dans Outils, Options globales. Il devrait y avoir des options R 32 bits et 64 bits si vous avez une version plus récente. Cela nécessitera un redémarrage de R et limitera vos options de mémoire. Cependant, l'installation de la version 64 bits du jre ne sera pas nécessaire.

Ulysse Ithaque
la source
2

Un autre package que vous pouvez utiliser est readxl . Ce package ne nécessite pas de dépendances externes.

Cristóbal Alcázar
la source
2

Je pense avoir trouvé la résolution car j'ai eu le même problème!

Mon correctif consistait à installer la mise à jour 181 de la version 8 de JRE (Java Runtime Environment) 32 et 64 bits.

Tamas
la source
1

La réponse dans le lien a résolu mon problème.

Avant la résolution, j'ai essayé en ajoutant JAVA_HOME aux environnements Windows. Il a résolu cette erreur mais a créé un autre problème. La solution dans le lien ci-dessus résout ce problème sans créer de problèmes supplémentaires.

Orhan Celik
la source