Ich versuche, rJava
auf einem Computer mit Win 7 64-Bit zu installieren . Wenn ich renne
install.packages("rJava")
alles scheint in Ordnung zu sein:
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
Beim Versuch, die Bibliothek zu laden library(rJava)
, wird jedoch der folgende Fehler angezeigt:
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'
Ich habe die Java-JRE (32- und 64-Bit-Versionen) und das JDK (32- und 64-Bit-Versionen) installiert. Meine R-Version ist R version 2.13.1 (2011-07-08)
und ich benutze RStudio.
Wenn ich versuche, 32-Bit-R zu verwenden, kann ich gut laden rJava
. Ist das Problem nur, dass rJava
nicht in R 64 Bit läuft? Wie kann ich feststellen, ob ein Paket nur für 32 statt für 64 ist?
bearbeiten: gerade gepostet 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)"
R.Version()
Ihrer Frage einfügen ? Ich habe gerade die 64-Bit-VersionrJava
mit genau der Methode installiert, die Sie in Ihrer Frage beschrieben haben. Ich vermute, dass Ihre Version von R 32 Bit ist.Program Files
oder befindetProgram Files (x86)
. Fügen Sie Windows einen Pfad hinzu, wie in der akzeptierten Antwort angegeben. WennProgram Files (x86)
Sie über eine 32-Bit-Version verfügen, folgen Sie dem Link sites.google.com/site/rforfishandwildlifegrads/home/week_2/… .Antworten:
Update (Juli 2018):
Die neueste CRAN-Version von rJava findet das
jvm.dll
automatisch, ohne dasPATH
oder manuell einzustellenJAVA_HOME
. Beachten Sie jedoch Folgendes:C:\Program files\Java\
und letztere installiert,C:\Program Files (x86)\Java\
damit keine Konflikte auftreten.Ab Java Version 9 wurde die Unterstützung für x86 (win32) eingestellt. Daher besteht das neueste funktionierende Multi-Arch-Setup darin, sowohl jdk-8u172-windows-i586.exe als auch jdk-8u172-windows-x64.exe und dann das Binärpaket von CRAN zu installieren :
Das Binärpaket von CRAN sollte das JVM von selbst aufnehmen. Nur für Experten : Um rJava aus dem Quellcode zu erstellen, benötigen Sie das
--merge-multiarch
Flag:Alte Antwort:
(Hinweis: Viele Leute in anderen Antworten / Kommentaren haben gesagt, JAVA_HOME zu entfernen. Bedenken Sie dies. Ich habe dieses Problem kürzlich nicht erneut untersucht, um zu erfahren, ob alle folgenden Schritte noch erforderlich sind.)
Hier finden Sie einige schnelle Tipps zur Inbetriebnahme von R + rJava unter Windows 7 64-Bit. Es gibt mehrere Möglichkeiten, aber die meisten weisen schwerwiegende Mängel auf. Folgendes hat bei mir funktioniert:
Fügen Sie jvm.dll zu Ihrem PFAD hinzu
rJava, die R <-> Java-Brücke, benötigt jvm.dll, aber R wird Probleme haben, diese DLL zu finden. Es befindet sich in einem Ordner wie
oder
Fügen Sie dieses Verzeichnis, wo immer es sich bei Ihnen befindet, zu Ihrer Windows-PATH-Variablen hinzu. (Windows -> "Pfad" -> "Umgebungsvariablen für Ihr Konto bearbeiten" -> PFAD -> Wert bearbeiten.)
Möglicherweise haben Sie bereits Java auf Ihrem PATH. In diesem Fall sollten Sie das Client / Server-Verzeichnis im selben Java-Verzeichnis "home" finden, das sich bereits in Ihrem PATH befindet.
Stellen Sie aus Sicherheitsgründen sicher, dass Ihre Architekturen übereinstimmen. Wenn Sie Java verwenden
Program Files
, ist es 64-Bit, daher sollten Sie R64 ausführen. Wenn Sie JavaProgram Files (x86)
haben, ist das 32-Bit, also verwenden Sie einfaches 32-Bit R.Starten Sie R über das Windows-Menü neu
Wenn R ausgeführt wird, beenden Sie das Programm.
Starten Sie im Startmenü R / RGUI, RStudio. Dies ist sehr wichtig, damit R Ihre PATH-Änderungen aufnimmt.
Installieren Sie rJava 0.9.2.
Frühere Versionen funktionieren nicht! Spiegel sind nicht auf dem neuesten Stand. Gehen Sie daher zur Quelle unter www.rforge.net: http://www.rforge.net/rJava/files/ . Beachten Sie die dortigen Hinweise
Das ist fast richtig. Das funktioniert tatsächlich:
install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')
Achte auf die Interpunktion! Das mysteriöse ".libPaths () [1]" weist R lediglich an, das Paket im primären Bibliotheksverzeichnis zu installieren. Aus irgendeinem Grund funktioniert es nicht, den Wert leer zu lassen, obwohl dies standardmäßig der Fall sein sollte.
quelle
install.packages('rJava', repos='http://www.rforge.net/')
....\jre\bin\server
zu Pfad behoben es für michDamit rJava funktioniert, hängt stark von der Konfiguration Ihres Computers ab:
Wenn Sie eine 64-Bit- Version verwenden, stellen Sie sicher, dass Sie JAVA_HOME nicht als Umgebungsvariable festlegen. Wenn diese Variable gesetzt ist, funktioniert rJava aus irgendeinem Grund nicht (zumindest für mich). Sie können in R leicht überprüfen, ob JAVA_HOME mit gesetzt ist
Wenn Sie JAVA_HOME einstellen müssen (z. B. für Maven oder etwas anderes), können Sie es in Ihrer R-Sitzung mit dem folgenden Code deaktivieren, bevor Sie rJava laden:
Dies sollte in den meisten Fällen ausreichen. Außerdem wird dadurch das Problem behoben, dass das rJava-Paket unter Win7 64-Bit auch mit R verwendet wird. Ich habe mir die Idee geliehen, die Umgebungsvariable von der fehlgeschlagenen Installation des R: rJava-Pakets zu entfernen .
quelle
Für mich hat das Setzen von JAVA_HOME den Trick getan (anstatt das Setzen aufzuheben, wie in einer anderen hier gegebenen Antwort). Entweder unter Windows:
Oder in R:
Aber was wahrscheinlich die beste Lösung ist (seit rJava 0.9-4), ist das Überschreiben der Windows JAVA_HOME-Einstellung in R insgesamt:
quelle
options(java.home="my\\path\\to\\jre")
funktionierte, als alles andere fehlschlug, einschließlich der Einstellung der Umgebung PATHoptions(java.home="C:\\Program Files\\Java\\jdk1.8.0_144\\jre")
. Wenn Sie jdk1.8 haben.Die letzte Frage hat eine einfache Antwort:
Das heißt, ich verwende R64. Wenn ich 32-Bit-R ausführen würde, würde es 4 zurückgeben. Nur weil Sie ein 64-Bit-Betriebssystem ausführen, bedeutet dies nicht, dass Sie 64-Bit-R ausführen, und aus der Fehlermeldung geht hervor, dass dies nicht der Fall ist.
BEARBEITEN: Wenn das Paket Binärdateien enthält, befinden sich diese in separaten Verzeichnissen. Die Einzelheiten hängen vom Betriebssystem ab. Beachten Sie, dass Ihr LoadLibrary-Fehler aufgetreten ist, als versucht wurde, die DLL in
...rJava/libs/x64/...
meinem MacOS-System zu finden. Der Ordner ... rJava / libs / ... `verfügt über 3 Unterverzeichnisse: i386, ppc und x86_64. (Die ppc-Dateien sind offensichtlich nutzloses Gepäck.)quelle
rJava
Paket importieren . Deshalb bin ich so verwirrt über die Fehlermeldung, da sie genau das Gegenteil von dem zu sein scheint, was gerade passiert.Entschuldigung für Nekro. Ich bin auch auf das gleiche Problem gestoßen und habe herausgefunden, dass
rJava
erwartet wirdJAVA_HOME
, auf JRE zu verweisen. Wenn Sie JDK installiert haben, verweisen Sie höchstwahrscheinlichJAVA_HOME
auf JDK. Meine schnelle Lösung:quelle
Ich hatte einige Probleme bei der Ermittlung des Java-Pakets, das installiert wurde, als ich auf dieses Problem stieß, da die vorherigen Antworten für mich nicht genau funktionierten. Um das zu klären, habe ich Folgendes eingegeben:
und dann drücken Sie die Tabulatortaste und die beiden vorgeschlagenen Verzeichnisse waren "jre1.8.0_31 /" und "jre7 /".
Jre7 hat mein Problem nicht gelöst, jre1.8.0_31 / jedoch. Die endgültige Antwort lief (vor der Bibliothek (rJava)):
Ich verwende 64-Bit-Windows 8.1. Ich hoffe, dies hilft jemand anderem.
Aktualisieren:
Überprüfen Sie Ihre Version, um festzustellen, was X sein soll (meine hat sich seit diesem Beitrag mehrmals geändert):
quelle
Ich hatte ein ähnliches Problem mit rJava. Es würde geladen, aber ein Paket, das davon abhängt, würde nicht geladen.
Benutzer verschwenden möglicherweise viel Zeit mit jvm.dll und PATH und JAVA_HOME, wenn die eigentliche Lösung darin besteht, das Installationsprogramm zu zwingen, i386 einfach zu vergessen. Verwenden Sie die Option für install.packages. (Dies funktioniert auch, wenn die Drat-Bibliothek verwendet wird. (Gutschrift geht an Dason.)
Sie können auch nur Ihren Benutzerpfad mit einem Win-Befehl wie dem folgenden ändern:
quelle
Ich brauche eine 32-Bit-JRE für meinen Browser, aber eine 64-Bit-JRE für R und rJava. Die 32-Bit-JRE wird am Standardspeicherort installiert. Nach einigen Experimenten stellte ich fest, dass ich nur einen Vorschlag von Misterbee brauchte , um rJava (Version 0.9-6 ) für mich arbeiten zu lassen. Ich habe lediglich den Pfad zu meiner 64-Bit-Java-Installation hinzugefügt:
zum Anfang meiner Pfadumgebungsvariablen (Ihr Pfad wird wahrscheinlich anders sein) und entfernen Sie mein JAVA_HOME, wie von user2161065 vorgeschlagen. Ich habe dies direkt vor den Eintrag gestellt
Das Oracle-Installationsprogramm fügt oben im Pfad ein und verweist auf einige Symlinks zur 32-Bit-JRE. Durch Hinzufügen des Eintrags zu 64-Bit-jvm.dll könnte rJava das finden, was es benötigt.
quelle
Ich denke das ist ein Update. Ich konnte rJava (unter Windows) erst installieren, als ich das JDK installiert habe, da Javac nicht gefunden wird und Javac nicht in der Windows-Eingabeaufforderung funktioniert . Die Nachricht, die ich bekam, war
Das JDK enthält die JRE und laut https://cran.r-project.org/web/packages/rJava/index.html die aktuelle Version (0.9-7 veröffentlicht am 29.07.2015) von rJava
Da sind Sie also: Wenn rJava nicht installiert werden kann, weil es javac nicht findet, und Sie die JRE installiert haben, versuchen Sie es mit dem JDK.
JAVA_HOME
Stellen Sie außerdem sicher, dass dies auf das JDK und nicht auf die JRE verweist.quelle
Ich habe das Problem gelöst, indem ich scheinbar redundante Java-Software von meinem Windows 7 x64-Computer deinstalliert habe . Dies wurde erreicht, indem zuerst alle Java-Anwendungen deinstalliert und dann eine neue Java-Version installiert wurden . (Später habe ich R 3.4.3 x86_64-w64-mingw32 auf den Java-Pfad verwiesen , um nur zu erwähnen, obwohl ich nicht glaube, dass dies das eigentliche Problem war.) Heute war nur noch Java 8 Update 161 (64-Bit) 8.0.1610.12 übrig dann. Danach hat
install.packages("rJava"); library(rJava)
es perfekt funktioniert.quelle
Dies ist eine Fortsetzung von Update (Juli 2018). Ich bin auf 64-Bit-Windows 10, aber eingerichtet, um r-Pakete aus dem Quellcode für 32- und 64-Bit mit Rtools zu erstellen. Mein 64-Bit-JDK ist JDK-11.0.2. Wenn ich kann, mache ich alles in RStudio. Ab März 2019 wird rjava mit <= jdk11 getestet, siehe Github-Ausgabe Nr. 157 .
Zu Ihrer Information, die rstudio-Skriptkonsole mag keine Doppelkommas ... aber es funktioniert!
quelle
Hinweis: jdk1.8.0_201 und jre1.8.0_201 werden abhängig von der Version des Java Development Kit und von Java geändert
Um die Installation zu überprüfen, öffnen Sie CMD \ Typ javac \ Drücken Sie die Eingabetaste und geben Sie Java ein \ drücken Sie die Eingabetaste. Es wird angezeigt
In RStudio laufen
Hinweis: jdk1.8.0_201 wird abhängig von der Version des Java Development Kit geändert
Jetzt können Sie das rJava-Paket problemlos installieren und laden.
quelle