Próbuję zainstalować rJava
na komputerze z systemem Windows 7 64-bitowym. Kiedy biegnę
install.packages("rJava")
wszystko wydaje się być w porządku:
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
ale kiedy próbuję załadować bibliotekę, pojawia library(rJava)
się następujący błąd:
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'
Zainstalowałem środowisko Java JRE (próbuję zarówno wersji 32-bitowej, jak i 64-bitowej) oraz JDK (używając zarówno wersji 32-bitowej, jak i 64-bitowej). Moja wersja R to R version 2.13.1 (2011-07-08)
i używam RStudio.
Jeśli spróbuję użyć 32-bitowego R, ładuję rJava
dobrze. Czy problem po prostu rJava
nie działa w R 64-bitowym? Jak mogę sprawdzić, czy pakiet jest tylko dla 32 zamiast 64?
edycja: właśnie opublikowano 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()
zapytania do swojego pytania? Właśnie zainstalowałem wersję 64-bitowąrJava
przy użyciu metody, którą opisałeś w swoim pytaniu. Domyślam się, że twoja wersja R jest 32-bitowa.Program Files
lubProgram Files (x86)
. Dodaj ścieżkę do okien zgodnie z zaakceptowaną odpowiedzią. JeśliProgram Files (x86)
to oznacza, że masz wersję 32-bitową, kliknij łącze sites.google.com/site/rforfishandwildlifegrads/home/week_2/… .Odpowiedzi:
Aktualizacja (lipiec 2018):
Najnowsza wersja CRAN rJava znajdzie
jvm.dll
automatycznie, bez ręcznego ustawianiaPATH
lubJAVA_HOME
. Należy jednak pamiętać, że:C:\Program files\Java\
a drugi w,C:\Program Files (x86)\Java\
więc nie powodują konfliktów.Począwszy od wersji Java 9 wsparcie dla x86 (win32) zostało przerwane. Dlatego najnowsza działająca konfiguracja multi-arch polega na zainstalowaniu zarówno jdk-8u172-windows-i586.exe, jak i jdk-8u172-windows-x64.exe, a następnie pakietu binarnego z CRAN:
Pakiet binarny z CRAN powinien sam znaleźć się w jvm. Tylko eksperci : aby zbudować rJava ze źródła, potrzebujesz
--merge-multiarch
flagi:Stara odpowiedź:
(Uwaga: wielu ludzi w innych odpowiedziach / komentarzach mówiło o usunięciu JAVA_HOME, więc rozważ to. Nie wracałem ostatnio do tego problemu, aby wiedzieć, czy wszystkie poniższe kroki są nadal konieczne.)
Oto kilka szybkich porad, jak rozpocząć pracę z R + rJava w systemie Windows 7 64bit. Możliwości jest kilka, ale większość z nich ma fatalne wady. Oto, co zadziałało dla mnie:
Dodaj jvm.dll do swojej ścieżki PATH
rJava, most R <-> Java, będzie potrzebował biblioteki jvm.dll, ale R będzie miał problem ze znalezieniem tej biblioteki DLL. Znajduje się w folderze, takim jak
lub
Gdziekolwiek jest twój, dodaj ten katalog do zmiennej PATH systemu Windows. (Windows -> „Ścieżka” -> „Edytuj zmienne środowiskowe dla swojego konta” -> ŚCIEŻKA -> edytuj wartość).
Być może masz już Javę na swojej ścieżce PATH. Jeśli tak, powinieneś znaleźć katalog klient / serwer w tym samym katalogu "macierzystym" Javy, co ten, który już znajduje się w PATH.
Aby być bezpiecznym, upewnij się, że architektura się zgadza. Jeśli masz Javę
Program Files
, jest ona 64-bitowa, więc powinieneś uruchomić R64. Jeśli masz JavęProgram Files (x86)
, jest to 32-bitowe, więc używasz zwykłego 32-bitowego R.Uruchom ponownie R z menu Windows
Jeśli R jest uruchomiony, zakończ.
Z menu Start wybierz Start R / RGUI, RStudio. Jest to bardzo ważne, aby R odebrał zmiany PATH.
Zainstaluj rJava 0.9.2.
Wcześniejsze wersje nie działają! Lustra nie są aktualne, więc przejdź do źródła pod adresem www.rforge.net: http://www.rforge.net/rJava/files/ . Zwróć uwagę na zawarte tam porady
To jest prawie poprawne. To faktycznie działa:
install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')
Uważaj na interpunkcję! Tajemniczy „.libPaths () [1]” po prostu mówi R, aby zainstalował pakiet w głównym katalogu biblioteki. Z jakiegoś powodu pozostawienie wartości pustej nie działa, nawet jeśli powinno być domyślne.
źródło
install.packages('rJava', repos='http://www.rforge.net/')
....\jre\bin\server
do ścieżki naprawiło to dla mnieUruchomienie rJavy zależy w dużej mierze od konfiguracji twojego komputera:
Jeśli używasz wersji 64-bitowej, upewnij się, że nie ustawiłeś JAVA_HOME jako zmiennej środowiskowej. Jeśli ta zmienna jest ustawiona, rJava nie będzie działać z jakiegokolwiek powodu (przynajmniej dla mnie). Możesz łatwo sprawdzić w R, czy JAVA_HOME jest ustawiony za pomocą
Jeśli potrzebujesz ustawić JAVA_HOME (np. Potrzebujesz go dla mavena lub czegoś innego), możesz go dezaktywować w sesji R za pomocą następującego kodu przed załadowaniem rJavy:
W większości przypadków powinno to załatwić sprawę. Ponadto rozwiąże to problem z użyciem pakietu rJava w systemie Windows 7 w wersji 64-bitowej z R. Zapożyczyłem pomysł usunięcia zmiennej środowiskowej z niepowodzenia instalacji pakietu R: rJava .
źródło
Dla mnie ustawienie JAVA_HOME załatwiło sprawę (zamiast rozbrajania, jak w innej odpowiedzi podanej tutaj). Albo w systemie Windows:
Lub wewnątrz R:
Ale prawdopodobnie najlepszym rozwiązaniem (od rJava 0.9-4) jest nadpisanie w R ustawienia Windows JAVA_HOME w ogóle:
źródło
options(java.home="my\\path\\to\\jre")
zadziałało, gdy wszystko inne zawiodło, w tym ustawienie środowiska PATHoptions(java.home="C:\\Program Files\\Java\\jdk1.8.0_144\\jre")
. Jeśli masz jdk1.8.Ostatnie pytanie ma prostą odpowiedź:
Oznacza to, że używam R64. Gdybym korzystał z 32-bitowego R, zwróciłoby to 4. Tylko dlatego, że używasz 64-bitowego systemu operacyjnego, nie oznacza, że będziesz używać 64-bitowego R, az komunikatu o błędzie wynika, że tak nie jest.
EDYCJA: Jeśli pakiet ma pliki binarne, to znajdują się w oddzielnych katalogach. Szczegóły będą zależeć od systemu operacyjnego. Zwróć uwagę, że błąd LoadLibrary wystąpił podczas próby znalezienia biblioteki DLL w
...rJava/libs/x64/...
folderze ... rJava / libs / ... `na moim systemie MacOS, zawierającym 3 podkatalogi: i386, ppc i x86_64. (Pliki ppc są oczywiście bezużytecznym bagażem).źródło
rJava
pakiet. Dlatego jestem tak zdezorientowany komunikatem o błędzie, ponieważ wydaje się być dokładnym przeciwieństwem tego, co się dzieje.Przepraszam za nekro. Ja też napotkałem ten sam problem i dowiedziałem się,
rJava
żeJAVA_HOME
powinien wskazywać na JRE. Jeśli masz zainstalowany JDK, najprawdopodobniej twojeJAVA_HOME
punkty wskazują na JDK. Moje szybkie rozwiązanie:źródło
Miałem problemy z określeniem pakietu Java, który został zainstalowany, gdy napotkałem ten problem, ponieważ poprzednie odpowiedzi nie działały dla mnie. Aby to uporządkować, wpisałem:
a następnie naciśnij tab, a dwa sugerowane katalogi to „jre1.8.0_31 /” i „jre7 /”
Jre7 nie rozwiązało mojego problemu, ale jre1.8.0_31 / tak. Końcowa odpowiedź była uruchomiona (przed biblioteką (rJava)):
Używam 64-bitowego systemu Windows 8.1 Mam nadzieję, że to pomoże komuś innemu.
Aktualizacja:
Sprawdź swoją wersję, aby określić, jaki powinien być X (moja zmieniała się kilka razy od tego postu):
źródło
Miałem podobny problem z rJava. Załadowałby się, ale pakiet, który od niego zależy, nie zostałby załadowany.
Użytkownicy mogą tracić dużo czasu z jvm.dll, PATH i JAVA_HOME, gdy prawdziwym rozwiązaniem jest zmuszenie instalatora do zapomnienia o i386. Użyj opcji dla install.packages. (działa to również, gdy używana jest biblioteka drat. (autorstwo dla Dason)
Możesz również zmodyfikować tylko swoją ścieżkę użytkownika za pomocą polecenia win w następujący sposób:
źródło
Muszę mieć 32-bitowe środowisko JRE dostępne dla mojej przeglądarki, ale 64-bitowe środowisko JRE dla R i rJava. 32-bitowe środowisko JRE jest instalowane w domyślnej lokalizacji. Po kilku eksperymentach stwierdziłem, że potrzebuję tylko jednej z sugestii misterbee, aby rJava (wersja 0.9-6 ) działała dla mnie. Wszystko, co zrobiłem, to dodanie ścieżki do mojej 64-bitowej instalacji Java:
na szczycie mojej zmiennej środowiskowej ścieżka (ścieżka będzie prawdopodobnie inny) i usunąć moje JAVA_HOME jak user2161065 sugerowane. Umieściłem to tuż przed wejściem
który instalator Oracle wstawia na początku ścieżki i wskazuje na niektóre dowiązania symboliczne do 32-bitowego środowiska JRE. Dodając wpis do 64-bitowej biblioteki jvm.dll, wygląda na to, że rJava może znaleźć to, czego potrzebuje.
źródło
Myślę, że to aktualizacja. Nie mogłem zainstalować rJavy (w systemie Windows), dopóki nie zainstalowałem JDK, ponieważ Javac nie został znaleziony, a javac nie działa w wierszu poleceń systemu Windows . Otrzymałem wiadomość
JDK zawiera JRE, a według https://cran.r-project.org/web/packages/rJava/index.html aktualna wersja (0.9-7 opublikowana 2015-Jul-29) rJava
Więc oto jesteś: jeśli rJava nie zainstaluje się, ponieważ nie może znaleźć javaca, a masz zainstalowane JRE, wypróbuj JDK. Upewnij się również, że
JAVA_HOME
wskazuje to JDK, a nie JRE.źródło
Rozwiązałem problem, odinstalowując pozornie nadmiarowe oprogramowanie Java z mojego komputera z systemem Windows 7 x64. Osiągnąłem to, najpierw odinstalowując wszystkie aplikacje Java, a następnie instalując nową wersję Java . (Później wskazałem R 3.4.3 x86_64-w64-mingw32 na ścieżkę Java , żeby wspomnieć, chociaż nie sądzę, aby to był prawdziwy problem.) Dzisiaj pozostała tylko Java 8 Update 161 (64-bit) 8.0.1610.12 następnie. Po tym
install.packages("rJava"); library(rJava)
działał idealnie.źródło
To jest kontynuacja aktualizacji (lipiec 2018). Używam 64-bitowego systemu Windows 10, ale jestem skonfigurowany do budowania pakietów r ze źródła zarówno dla 32, jak i 64 bitów z Rtools. Mój 64-bitowy jdk to jdk-11.0.2. Kiedy mogę, robię wszystko w RStudio. Od marca 2019 rjava jest testowana z <= jdk11, zobacz numer 157 na githubie .
FYI, konsola skryptowa rstudio nie lubi podwójnych przecinków ... ale działa!
źródło
Uwaga: jdk1.8.0_201 i jre1.8.0_201 zostaną zmienione w zależności od wersji Java Development Kit i Java
Aby sprawdzić instalację, otwórz CMD \ Type javac \ Naciśnij Enter i wpisz java \ naciśnij enter. Pojawi się
W RStudio uruchom
Uwaga: jdk1.8.0_201 zostanie zmieniony w zależności od wersji Java Development Kit
Teraz możesz bez problemu zainstalować i załadować pakiet rJava.
źródło