Korzystanie z pakietu rJava na Win7 64 bit z R

Próbuję zainstalować rJava na komputerze z Win 7 64 bit. When I run

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óbowałem załadować bibliotekę library(rJava) dostaję 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 Java JRE (w wersji 32 i 64 bitowej) i JDK (w wersji 32 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, mogę załadować rJava dobrze. Czy problem polega tylko na tym, że rJava nie uruchomić w r 64 bit? Jak mogę sprawdzić, czy pakiet jest tylko dla 32 zamiast 64?


Edit: just posted 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)"
 139
Author: djq, 2011-08-11

10 answers

[14]}Aktualizacja (Lipiec 2018):

Najnowsza wersja CRAN rJava znajdzie jvm.dll automatycznie, bez ręcznego ustawiania PATH lub JAVA_HOME. Należy jednak pamiętać, że:

  • aby używać rJava w 32-bitowym R, musisz Java dla Windows x86
  • aby używać rJava w 64-bitowym R, musisz Java dla Windows x64
  • aby zbudować lub sprawdzić pakiety R z multi-arch (domyślnie) musisz zainstalować oba Java dla Windows x64 oraz Java dla Windows x86 . Na Win 64 pierwszy instaluje się w C:\Program files\Java\, a drugi w C:\Program Files (x86)\Java\, więc nie są sprzeczne.

Od wersji Java 9, wsparcie dla x86 (win32) zostało przerwane. Dlatego najnowszą działającą konfiguracją multi-arch jest instalacja obu jdk-8u172-windows-i586.exe i jdk-8u172-windows-x64.exe a następnie pakiet binarny z CRAN:

install.packages("rJava")

Pakiet binarny z CRAN powinien odebrać jvm przez siebie. tylko eksperci : aby zbudować rJava ze źródła, potrzebujesz --merge-multiarch flagi:

install.packages('rJava', type = 'source', INSTALL_opts='--merge-multiarch')

Stary anwser:

(Uwaga: wielu ludzi w innych odpowiedziach/komentarzach powiedziało, aby usunąć JAVA_HOME, więc rozważ to. Nie wspominałem ostatnio o tym problemie, aby wiedzieć, czy wszystkie poniższe kroki są nadal konieczne.)

Oto kilka szybkich rad, jak uruchomić R + rJava na Windows 7 64bit. Istnieje kilka możliwości, ale większość ma fatalne wady. Proszę. działa Mi:

Dodaj jvm.dll to your PATH

Rjava, R Java bridge, będzie potrzebował jvm.dll, ale R będzie miał problem ze znalezieniem tego DLL. Znajduje się w folderze jak

C:\Program Files\Java\jdk1.6.0_25\jre\bin\server

Lub

C:\Program Files\Java\jre6\jre\bin\client

Gdziekolwiek jest Twój, dodaj ten katalog do zmiennej windows PATH. (Windows - > "ścieżka" - > "Edytuj zmienne środowiskowe dla swojego konta" - > ścieżka - > Edytuj wartość.)

Możesz już mieć Javę na swojej ścieżce. Jeśli tak, powinieneś znaleźć katalog klient / serwer w tym samym katalogu Java "home", co ten, który znajduje się już na twojej ścieżce.

Aby być bezpiecznym, upewnij się, że Twoja Architektura pasuje.Jeśli masz Javę w Program Files, jest ona 64-bitowa, więc powinieneś uruchomić R64. Jeśli masz Javę w Program Files (x86), jest to 32-bit, 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 Uruchom R / RGUI , RStudio. Jest to bardzo ważne, aby R podnieść swoją ścieżkę zmiany.

Zainstaluj rJava 0.9.2.

Wcześniejsze wersje nie działają! Lustra nie są aktualne, więc przejdź do źródła na www.rforge.net: http://www.rforge.net/rJava/files / . zwróć uwagę na porady

“Please use

`install.packages('rJava',,'http://www.rforge.net/')`

to install.”

To prawie prawda. To faktycznie działa:

install.packages('rJava', .libPaths()[1], 'http://www.rforge.net/')

Uważaj na interpunkcję! Tajemniczy".libPaths () [1]," nakazuje R zainstalowanie pakietu w głównym katalogu biblioteki. Z jakiegoś powodu, pozostawiając wartość puste nie działa, nawet jeśli powinno być domyślne.

 134
Author: misterbee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 21:47:22

Uruchomienie rjavy zależy w dużej mierze od konfiguracji komputera:

  1. musisz użyć tej samej 32-bitowej lub 64-bitowej wersji zarówno dla: R jak i JDK/JRE. Mieszanka tego nigdy nie zadziała (przynajmniej dla mnie).
  2. Jeśli używasz wersji 64bit upewnij się, żenie ustawiasz JAVA_HOME jako zmiennej środowiska. Jeśli ta zmienna jest ustawiona, rJava nie będzie działać z jakiegokolwiek powodu (przynajmniej dla mnie). Możesz łatwo sprawdzić w R jest JAVA_HOME jest ustawione z

    Sys.getenv("JAVA_HOME")
    

Jeśli potrzebujesz ustawić JAVA_HOME (np. potrzebujesz go dla Mavena lub czegoś innego), możesz go dezaktywować w swojej sesji R za pomocą następującego kodu przed załadowaniem rJava:

if (Sys.getenv("JAVA_HOME")!="")
  Sys.setenv(JAVA_HOME="")
library(rJava)
To powinno załatwić sprawę w większości przypadków. Ponadto naprawi to problem przy użyciu pakietu rJava na Win7 64 bit z R, zbyt. Zapożyczyłem pomysł wyłączenia zmiennej enviorment z r: rjava package install failed.
 105
Author: user2161065,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:59

Dla mnie, ustawienie JAVA_HOME zadziałało (zamiast wyłączania, jak w innej odpowiedzi podanej tutaj). Albo w Windows:

set JAVA_HOME="C:\Program Files\Java\jre7\"

Lub wewnątrz R:

Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jre7\\")

Ale to, co jest prawdopodobnie najlepszym rozwiązaniem (od rJava 0.9-4) jest nadrzędne w R Windows JAVA_HOME ustawienie łącznie:

options(java.home="C:\\Program Files\\Java\\jre7\\")
library(rJava)
 28
Author: ROLO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-08 13:20:22

Ostatnie pytanie ma łatwą odpowiedź:

> .Machine$sizeof.pointer
[1] 8

To znaczy, że prowadzę R64. Gdybym uruchomił 32 bit R, zwróciłbym 4. Tylko dlatego, że używasz 64-bitowego systemu operacyjnego, nie oznacza, że będziesz działał 64-bitowy R, A z komunikatu o błędzie wynika, że nie jesteś.

EDIT: jeśli pakiet zawiera pliki binarne, to znajdują się one w oddzielnych katalogach. Szczegóły zależą od systemu operacyjnego. Zauważ, że błąd LoadLibrary wystąpił podczas próby znalezienia biblioteki dll w ...rJava/libs/x64/... na moim MacOS system the ...rJava / libs/...'folder posiada 3 podkatalogi: i386, ppc i x86_64. (Pliki ppc są oczywiście bezużyteczny bagaż.)

 7
Author: 42-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-11 11:53:07

Przepraszam za necro. Ja też natknąłem się na ten sam problem i dowiedziałem się, że rJava oczekuje JAVA_HOME, że wskaże JRE. Jeśli masz zainstalowany JDK, najprawdopodobniej Twój JAVA_HOME wskazuje na JDK. Moje szybkie rozwiązanie:

Sys.setenv(JAVA_HOME=paste(Sys.getenv("JAVA_HOME"), "jre", sep="\\"))
 4
Author: friendzis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-20 13:03:06

Miałem pewne problemy z określeniem pakietu Java, który został zainstalowany, gdy napotkałem ten problem, ponieważ poprzednie odpowiedzi nie do końca działały dla mnie. Aby to uporządkować, wpisałem:

Sys.setenv(JAVA_HOME="C:/Program Files/Java/

A następnie naciśnij tab i dwa sugerowane katalogi to "jre1. 8. 0_31 /" i "jre7 /"

Jre7 nie rozwiązał mojego problemu, ale jre1. 8. 0_31 / zrobił. Ostatnia odpowiedź była uruchomiona (przed biblioteką (rJava)):

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_31/")

Używam 64-bitowego Windows 8.1 mam nadzieję, że to komuś pomoże else.

Update:

Sprawdź swoją wersję, aby określić, co powinno być X (moja zmieniła się kilka razy od tego posta):

Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_x/")
 3
Author: Optimus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-27 20:03:38

Miałem podobny problem z rjavą. Ładowałby się, ale pakiet, który od niego zależy, nie ładowałby się.

Użytkownicy mogą tracić dużo czasu z jvm.dll i PATH i JAVA_HOME, gdy prawdziwym rozwiązaniem jest zmuszenie instalatora do zapomnienia o i386. Użyj opcji instalacji.paczki. (działa to również wtedy, gdy używana jest biblioteka drat. (kredyt idzie do Dasona)

install.packages("SqlRender",INSTALL_opts="--no-multiarch")

Możesz również zmodyfikować tylko ścieżkę użytkownika za pomocą polecenia win, takiego jak:

setx PATH "C:\Program Files\Java\jre1.8.0_102\bin\server;%PATH%"
 3
Author: userJT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-29 15:56:06

Muszę mieć 32-bitowy JRE Dostępny dla mojej przeglądarki, ale 64-bitowy JRE dla R i rJava. 32-bitowy JRE jest zainstalowany w domyślnej lokalizacji. Po kilku eksperymentach okazało się, że potrzebowałem tylko jednej z sugestii misterbee , Aby uzyskać rJava (wersja 0.9-6) pracuje dla mnie. Wszystko, co zrobiłem, to dodanie ścieżki do mojej 64-bitowej instalacji Javy:

C:\apps\Java\jre\bin\server\jvm.dll

Do górnej części zmiennej środowiskowej my path (twoja ścieżka prawdopodobnie będzie inna) i Usuń moje JAVA_HOME jako user2161065 suggested. Umieściłem to tuż przed wpisem

C:\ProgramData\Oracle\Java\javapath

Które Instalator Oracle wstawia u góry ścieżki i wskazuje na niektóre dowiązania symboliczne do 32-bitowego JRE. Poprzez dodanie wpisu do 64 bitowego jvm.dll, wygląda na to, że rJava może znaleźć to, czego potrzebuje.

 0
Author: Michael Szczepaniak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-14 18:54:42

Myślę, że to aktualizacja. Nie mogłem zainstalować rjavy (na Windows) dopóki nie zainstalowałem JDK, jak na Javac nie został znaleziony oraz javac nie działa w wierszu polecenia systemu windows. Wiadomość, którą otrzymywałem to

'javac' is not recognized as an internal or external command, operable program or batch file.

JDK obejmuje JRE, a zgodnie z https://cran.r-project.org/web/packages/rJava/index.html aktualna wersja (0.9-7 opublikowano 2015-Jul-29) rJava

SystemRequirements:     Java JDK 1.2 or higher (for JRI/REngine JDK 1.4 or higher), GNU make

Więc jesteś: jeśli rJava nie zainstaluje, ponieważ nie może znajdź javaca i masz zainstalowane JRE, a następnie spróbuj JDK. Upewnij się również, że JAVA_HOME wskazuje na JDK, a nie na JRE.

 0
Author: woodvi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:40

Rozwiązałem problem przez odinstalowanie widocznie zbędnego oprogramowania Java z mojego komputera z systemem windows 7 x64. Udało mi się to najpierw odinstalować wszystkie aplikacje Java i , a następnie zainstalować nową wersję Java. (Później wskazaĺ 'em R 3.4.3 x86_64-W64-mingw32 na Ĺ" cieĹźkÄ ™ Javy , chociaĹź uwaĺźam, Ĺźe nie byĹ ' to prawdziwy problem.) Dzisiaj została już tylko Java 8 Update 161 (64-bit) 8.0.1610.12. Po tym, install.packages("rJava"); library(rJava) zadziałało idealnie.

 0
Author: jaySf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-22 07:53:31