web-dev-qa-db-fra.com

Problèmes lors de la tentative de chargement d'un paquet dans R à cause de rJava

Lorsque je tape require(xlsx) afin de charger le package xlsx dans 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 paquet rJava manuellement mais j'ai reçu le message d'erreur suivant:

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?

66
Pritam Kar

La raison en est probablement liée au fait que vous utilisez une version 64-bit du système d'exploitation, mais que Java n'est pas installé avec la même architecture . Ce que vous devez faire est de télécharger Java 64-bit depuis cette page: https://www.Java.com/fr/download/manual.jsp

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

94
Gianluca

J'ai eu un problème similaire, ce qui a fonctionné pour moi a été de définir Java_HOME. Je l'ai fatigué d'abord dans 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é.

8
Lauren Fitch

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

system("Java -version")

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

6
Edwin Vivek N

Si vous rencontrez cette erreur dans RStudio, utilisez le code environnemental de Lauren ci-dessus et modifiez votre version R en 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. L'installation de la version 64 bits du jre ne sera toutefois pas nécessaire.

3
Odysseus Ithaca

J'ai eu un problème similaire. Cela est dû au paquet dépendant 'rJava'. Ce problème peut être surmonté en redirigeant le R d'utiliser un Java_HOME différent.

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

Cela a fonctionné pour moi.

2

Répondre dans link a résolu mon problème.

Avant la résolution, j'ai essayé d'ajouter Java_HOME aux environnements Windows. Il a résolu cette erreur mais créé un autre problème. La solution décrite ci-dessus résout ce problème sans créer de problèmes supplémentaires.

1
Orhan Celik

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

Mon correctif consistait à installer la mise à jour 181 de la JRE (environnement d'exécution Java) 32 bits et 64 bits (j'ai besoin de 32 bits pour une autre application, mais votre correctif peut très bien consister à réinstaller 64 bits par lui-même.)

0
Tamas

Si vous avez ce problème avec macOS, il n’existe pas de moyen simple ici :( Surtout lorsque vous souhaitez utiliser la version R3.4. J'y suis déjà allé;)

R 3.4, rJava, macOS et encore plus de bazar;)

Pour R3.3, ce n’est pas un petit peu plus facile (R3.3 a été compilé avec un compilateur différent).

Aventures R, Java, Java et macOS

0
Oo.oO

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

0