Problème avec rJava

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Problème avec rJava

Messagepar Florent Aubry » 21 Fév 2014, 14:14

Je ne peux pas charger en mémoire le package glmulti car il dépend de rJava et le chargement de ce dernier génère une erreur :

Code : Tout sélectionner

Le chargement a nécessité le package : rJava
Error : .onLoad a échoué dans loadNamespace() pour 'rJava', détails :
  appel : dirname(this$RuntimeLib)
  erreur : un argument de type vecteur de caractères est attendu
Erreur : le package ‘rJava’ ne peut être chargé


Configuration :
    Système : Windows 7, 64 bits
    R : version 3.0.2
    glmulti : version 1.0.7
    rJava : version 0.9.6


Quelqu'un a-t-il déjà eu ce problème et/ou a-t-il une solution ?

N.B. : J'ai rechargé les deux packages depuis le site de R après les avoir éliminés du répertoire library de R et cela n'a pas résolu le problème

Merci d'avance.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 22 Fév 2014, 08:55

Tout marche normalement chez moi avec la même config.
Renaud

Navarre Julien
Messages : 367
Enregistré le : 20 Avr 2012, 08:27

Messagepar Navarre Julien » 22 Fév 2014, 09:46

Pour ma part j'avais déjà rencontré des erreurs avec rJava mais l'erreur signalée n'était pas la même.
J'avais résolu mes problèmes en ré-installant Java sur mon ordi.

http://www.java.com/fr/download/

Peut être qu'avec un peu de chance ça résoudra ton problème ...

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Pb avec RJava

Messagepar Florent Aubry » 24 Fév 2014, 09:14

Merci à Renaud et à Julien pour leurs réponses. Comme le suggérait Julien, j'ai rechargé Java, mais sans succès. Je suis donc 'descendu' dans le code. Le problème vient d'une erreur dans la fonction .onLoad appelée dans runHook, fonction interne à loadNamespace.

Voici le code fautif :

Code : Tout sélectionner

function (libname, pkgname)
{
    OPATH <- Sys.getenv("PATH")
    javahome <- if (!is.null(getOption("java.home")))
        getOption("java.home")
    else Sys.getenv("JAVA_HOME")
    if (!nchar(javahome)) {
        find.java <- function() {
            for (root in c("HLM", "HCU")) for (key in c("Software\\JavaSoft\\Java Runtime Environment",
                "Software\\JavaSoft\\Java Development Kit")) {
                hive <- try(utils::readRegistry(key, root, 2),
                  silent = TRUE)
                if (!inherits(hive, "try-error"))
                  return(hive)
            }
            hive
        }
        hive <- find.java()
        if (inherits(hive, "try-error"))
            stop("JAVA_HOME cannot be determined from the Registry")
        if (!length(hive$CurrentVersion))
            stop("No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.")
        this <- hive[[hive$CurrentVersion]]
        javahome <- this$JavaHome
        paths <- dirname(this$RuntimeLib)
    }
...


A l'appel, libname est bien le chemin d'accès au répertoire library de R et pkgname vaut bien rJava.

Code : Tout sélectionner

hive <- find.java()
donne bien les références à ma configuration Java :

Code : Tout sélectionner

$BrowserJavaVersion
[1] "10.11.2"

$CurrentVersion
[1] "1.7"

$Java7FamilyVersion
[1] "1.7.0_11"

$`1.7`
$`1.7`$JavaHome
[1] "C:\\Program Files\\Java\\jre7"

$`1.7`$MicroVersion
[1] "0"


$`1.7.0_11`
$`1.7.0_11`$JavaHome
[1] "C:\\Program Files\\Java\\jre7"

$`1.7.0_11`$MicroVersion
[1] "0"

$`1.7.0_11`$MSI
[1] "<subkey>"

dans laquelle la clé RuntimeLib est absente, ce qui explique l'erreur. Donc ma question devient :
Comment faire pour que cette référence soit accessible sachant que j'ai chargé java à partir de l'installateur téléchargé depuis le site de Java ?

Perceval Sondag
Messages : 126
Enregistré le : 09 Avr 2012, 09:55

Messagepar Perceval Sondag » 24 Fév 2014, 13:35

Tu as bien Rx64 et java installé pour win7-64 ?
Ou le tout en 32 bien sur.

J'avais la même erreur et le soucis est que j'utilisais Rx64 sur win7, 64 mais avec un java installé en 32 bits.
Perceval Sondag

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Messagepar Florent Aubry » 24 Fév 2014, 13:46

En effet, c'était bien le problème. J'avais fait le chargement automatique par défaut de Java qui est celui de la version 32 bits. Je viens de charger la version 64 bits et ça marche.

Merci.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité