J'essaie d'installer rJava
sur un ordinateur Windows 7 64 bits. Quand je cours
install.packages("rJava")
tout semble aller bien:
Installing package(s) into ‘C:/Users/djq/Documents/R/win-library/2.13’
(as ‘lib’ is unspecified)
trying URL 'http://software.rc.fas.harvard.edu/mirrors/R/bin/windows/contrib/2.13/rJava_0.9-1.Zip'
Content type 'application/Zip' length 654936 bytes (639 Kb)
opened URL
downloaded 639 Kb
package 'rJava' successfully unpacked and MD5 sums checked
The downloaded packages are in
C:\TEMP\RtmpW2eAUw\downloaded_packages
mais lorsque j'ai essayé de charger la bibliothèque library(rJava)
, l'erreur suivante apparaît:
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: inDL(x, as.logical(local), as.logical(now), ...)
error: unable to load shared object 'C:/Users/me/Documents/R/win-library/2.13/rJava/libs/x64/rJava.dll':
LoadLibrary failure: %1 is not a valid Win32 application.
Error: package/namespace load failed for 'rJava'
J'ai installé Java JRE (en essayant les versions 32 et 64 bits) et le JDK (en utilisant les versions 32 et 64 bits). Ma version R est R version 2.13.1 (2011-07-08)
et j'utilise RStudio.
Si j'essaie d'utiliser 32 bits R, je peux charger rJava
fine. Est-ce que le problème est simplement que rJava
ne fonctionne pas en R 64 bits? Comment puis-je savoir si un paquet est seulement pour 32 au lieu de 64?
modifier: vient de publier R.version()
:
> R.Version()
$platform
[1] "x86_64-pc-mingw32"
$Arch
[1] "x86_64"
$os
[1] "mingw32"
$system
[1] "x86_64, mingw32"
$status
[1] ""
$major
[1] "2"
$minor
[1] "13.1"
$year
[1] "2011"
$month
[1] "07"
$day
[1] "08"
$`svn rev`
[1] "56322"
$language
[1] "R"
$version.string
[1] "R version 2.13.1 (2011-07-08)"
La dernière version CRAN de rJava trouvera le jvm.dll
automatiquement, sans régler manuellement le PATH
ou Java_HOME
. Notez cependant que:
C:\Program files\Java\
et le dernier dans C:\Program Files (x86)\Java\
afin qu'ils ne soient pas en conflit.À partir de Java version 9, la prise en charge de x86 (win32) n'est plus disponible. Par conséquent, la dernière configuration multi-Arch qui fonctionne consiste à installer à la fois jdk-8u172-windows-i586.exe et jdk-8u172-windows-x64.exe , puis le paquet binaire de CRAN:
install.packages("rJava")
Le paquet binaire de CRAN devrait aller chercher le jvm par lui-même. uniquement des experts : pour créer rJava à partir du code source, vous avez besoin du drapeau --merge-multiarch
:
install.packages('rJava', type = 'source', INSTALL_opts='--merge-multiarch')
(Remarque: de nombreuses personnes dans d'autres réponses/commentaires ont dit de supprimer Java_HOME, alors réfléchissez-y. Je n'ai pas revisité ce problème récemment pour savoir si toutes les étapes ci-dessous sont encore nécessaires.)
Voici quelques conseils rapides pour vous familiariser avec R + rJava sous Windows 7 64 bits. Il y a plusieurs possibilités, mais la plupart ont des défauts fatals. Voici ce qui a fonctionné pour moi:
Ajoutez jvm.dll à votre PATH
rJava, le pont R <-> Java, aura besoin de jvm.dll, mais R aura du mal à trouver cette DLL. Il réside dans un dossier comme
C:\Program Files\Java\jdk1.6.0_25\jre\bin\server
ou
C:\Program Files\Java\jre6\jre\bin\client
Où que vous soyez, ajoutez ce répertoire à votre variable Windows PATH. (Windows -> "Chemin" -> "Modifier les variables d'environnement pour votre compte" -> CHEMIN -> modifier la valeur.)
Vous avez peut-être déjà Java sur votre CHEMIN. Si c'est le cas, vous devriez trouver le répertoire client/serveur dans le même répertoire Java "home" que celui déjà présent dans votre PATH.
Pour plus de sécurité, assurez-vous que vos architectures correspondent. Si vous avez Java dans Program Files
, il est en 64 bits, vous devez donc exécuter R64. Si vous avez Java dans Program Files (x86)
, c'est 32 bits, vous utilisez donc un R. 32 bits en clair.
Relancez R à partir du menu Windows
Si R est en cours d'exécution, quittez.
Dans le menu Démarrer, démarrez R/RGUI, RStudio. Ceci est très important pour que R récupère vos modifications PATH.
Installez rJava 0.9.2.
Les versions précédentes ne fonctionnent pas! Les miroirs ne sont pas à jour, allez à la source sur www.rforge.net: http://www.rforge.net/rJava/files/ . Notez le conseil là
“Please use
`install.packages('rJava',,'http://www.rforge.net/')`
to install.”
C'est presque correct. Cela fonctionne réellement:
install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')
Regardez la ponctuation! Le mystérieux ".libPaths () [1]" indique simplement à R d’installer le paquet dans le répertoire de la bibliothèque principale. Pour une raison quelconque, laisser la valeur vide ne fonctionne pas, même si cela devrait être la valeur par défaut.
Faire fonctionner rJava dépend fortement de la configuration de votre ordinateur:
Si vous utilisez la version 64 bits, assurez-vous que ne définissez pas Java_HOME en tant que variable d’environnement. Si cette variable est définie, rJava ne fonctionnera pas pour quelque raison que ce soit (du moins pour moi). Vous pouvez vérifier facilement dans R si Java_HOME est défini avec
Sys.getenv("Java_HOME")
Si vous avez besoin de définir Java_HOME (par exemple, vous en avez besoin pour maven ou autre chose), vous pouvez le désactiver dans votre session R avec le code suivant avant de charger rJava:
if (Sys.getenv("Java_HOME")!="")
Sys.setenv(Java_HOME="")
library(rJava)
Cela devrait faire l'affaire dans la plupart des cas. De plus, cela corrigera le problème Utilisation du package rJava sous Win7 64 bits avec R également. J'ai emprunté l'idée de désactiver la variable d'environnement de R: L'installation du package rJava a échoué .
Pour moi, setting Java_HOME a fait l'affaire (au lieu de le désactiver, comme dans une autre réponse donnée ici). Soit sous Windows:
set Java_HOME="C:\Program Files\Java\jre7\"
Ou à l'intérieur de R:
Sys.setenv(Java_HOME="C:\\Program Files\\Java\\jre7\\")
Mais ce qui est probablement la meilleure solution (depuis rJava 0.9-4) annule dans R le paramètre Windows Java_HOME:
options(Java.home="C:\\Program Files\\Java\\jre7\\")
library(rJava)
La dernière question a une réponse facile:
> .Machine$sizeof.pointer
[1] 8
Ce qui signifie que je cours R64. Si j’exécutais le 32 bits R, il renverrait 4. Ce n’est pas parce que vous utilisez un système d’exploitation 64 bits que vous exécuterez le 64 bits. Le message d’erreur indique que ce n’est pas le cas.
EDIT: Si le paquet contient des fichiers binaires, ils se trouvent dans des répertoires séparés. Les détails dépendront du système d'exploitation. Notez que votre erreur LoadLibrary s'est produite lors de la tentative de recherche de la dll dans ...rJava/libs/x64/...
Sous MacOS, le dossier ... rJava/libs/... `comporte 3 sous-répertoires: i386, ppc et x86_64. (Les fichiers ppc sont évidemment des bagages inutiles.)
Désolé pour necro . J'ai rencontré le même problème et découvert que rJava
s'attend à ce que Java_HOME
pointe sur JRE. Si vous avez installé JDK, il est fort probable que votre Java_HOME
pointe sur JDK. Ma solution rapide:
Sys.setenv(Java_HOME=paste(Sys.getenv("Java_HOME"), "jre", sep="\\"))
J'ai eu quelques difficultés à déterminer le package Java installé lorsque j'ai rencontré ce problème, car les réponses précédentes ne fonctionnaient pas exactement pour moi. Pour résoudre ce problème, j'ai tapé:
Sys.setenv(Java_HOME="C:/Program Files/Java/
puis appuyez sur l'onglet et les deux répertoires suggérés étaient "jre1.8.0_31 /" et "jre7 /"
Jre7 n'a pas résolu mon problème, mais jre1.8.0_31/l'a fait. La réponse finale était en cours d'exécution (avant la bibliothèque (rJava)):
Sys.setenv(Java_HOME="C:/Program Files/Java/jre1.8.0_31/")
J'utilise Windows 8.1 64 bits J'espère que cela aide quelqu'un d'autre.
Mettre à jour:
Vérifiez votre version pour déterminer ce que devrait être X (la mienne a changé plusieurs fois depuis ce poste):
Sys.setenv(Java_HOME="C:/Program Files/Java/jre1.8.0_x/")
J'ai eu un problème connexe avec rJava. Il se chargerait mais un paquet qui en dépend ne se chargerait pas.
Les utilisateurs risquent de perdre beaucoup de temps avec jvm.dll, PATH et Java_HOME lorsque le vrai correctif consiste à forcer le programme d'installation à oublier i386. Utilisez l'option pour install.packages. (Cela fonctionne aussi quand on utilise drat library. (le crédit revient à Dason)
install.packages("SqlRender",INSTALL_opts="--no-multiarch")
En outre, vous pouvez modifier uniquement votre chemin d’utilisateur avec une commande win comme celle-ci:
setx PATH "C:\Program Files\Java\jre1.8.0_102\bin\server;%PATH%"
Ceci est un suivi de Update (juillet 2018). Je suis sur Windows 10 64 bits, mais je suis configuré pour créer des packages à partir des sources pour 32 et 64 bits avec Rtools. Mon jdk 64 bits est jdk-11.0.2. Quand je peux, je fais tout dans RStudio. Depuis mars 2019, java est testé avec <= jdk11, voir github numéro 157 .
Sys.setenv(Java_HOME="C:/Program Files/Java/jdk-11.0.2")
Sys.getenv("Java_HOME")
install.packages("rJava",,"http://rforge.net")
Pour votre information, la console de script de rstudio n'aime pas les doubles virgules ... mais ça marche!
J'ai besoin d'un JRE 32 bits disponible pour mon navigateur, mais de JRE 64 bits pour R et rJava. JRE 32 bits est installé à l'emplacement par défaut. Après quelques expériences, j'ai découvert que je n'avais besoin que d'une des suggestions de misterbee pour que rJava (version 0.9-6) fonctionne pour moi. J'ai seulement ajouté le chemin d'accès à mon installation Java 64 bits:
C:\apps\Java\jre\bin\server\jvm.dll
en haut de la variable d’environnement de mon chemin (votre chemin sera probablement différent) et supprimez Java_HOME comme indiqué par user2161065. Je mets cela juste avant l'entrée
C:\ProgramData\Oracle\Java\javapath
que le programme d’installation d’Oracle insère en haut du chemin et pointe vers des liens symboliques vers le JRE 32 bits. En ajoutant l'entrée à jvm.dll 64 bits, rjava pourrait trouver ce dont il a besoin.
J'ai résolu le problème en désinstaller logiciel Java apparemment redondant à partir de ma machine Windows 7 x64. Pour ce faire, j'ai d'abord désinstallé toutes les applications Java, puis puis en installant une nouvelle version de Java. (Plus tard, je _ { j'ai indiqué R 3.4.3 x86_64-w64-mingw32 sur le chemin d'accès Java. }, Juste pour mentionner que je ne pense pas que ce soit le vrai problème.) Aujourd'hui, seule la mise à jour Java 8 161 (64 bits). ) 8.0.1610.12 a été laissé ensuite. Après cela, install.packages("rJava"); library(rJava)
a parfaitement fonctionné.
Je pense que ceci est une mise à jour. Je ne pouvais pas installer rJava (sous Windows) avant d’avoir installé le JDK, comme indiqué dans Javac n’est pas trouvé Et javac ne fonctionne pas dans la commande Windows Invite . Le message que je recevais était
'javac' is not recognized as an internal or external command, operable program or batch file.
Le JDK inclut le JRE et, selon https://cran.r-project.org/web/packages/rJava/index.html La version actuelle (0.9-7 publiée en 2015- 29 juillet) De java
SystemRequirements: Java JDK 1.2 or higher (for JRI/REngine JDK 1.4 or higher), GNU make
Vous y êtes donc: si rJava ne s’installe pas car il ne trouve pas javac et que le JRE est installé, essayez le JDK. Assurez-vous également que Java_HOME
pointe vers le JDK et non vers le JRE.
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.
Pour vérifier l’installation, ouvrez CMD\Tapez javac\Appuyez sur Entrée et tapez Java\appuyez sur Entrée. Il affichera
Dans RStudio run
Sys.setenv(Java_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")
Remarque: 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.