2012-02-02 8 views
18

Zainstalowałem pakiety iplots i rjava. Kiedy robię tę bibliotekę (iplots), pojawia się następujący błąd. Mam zainstalowany JDK na moim komputerze.Jak mogę zainstalować rJava do użytku z 64-bitowym R na 64-bitowym komputerze z systemem Windows?

Loading required package: rJava 
Error : .onLoad failed in loadNamespace() for 'rJava', details: 
call: fun(libname, pkgname) 
error: JAVA_HOME cannot be determined from the Registry 

Błąd: Pakiet „rJava” nie można załadować

Odpowiedz

23

Błąd jest informacją, że nie ma żadnego wpisu w rejestrze, który mówi gdzie R Java znajduje się na komputerze. Albo twój rejestr jest uszkodzony, ale prawdopodobnie nie zainstalowałeś Javy. Można zainstalować środowisko Java Runtime Environment lub Java Development Kit.

(You can download Java here.)

Jeśli zainstalowana Java, spróbuj ponownie zainstalować go. To powinno przywrócić wpisy do rejestru.

Jeśli to nie zadziała, możesz zacząć dokładnie sprawdzać, gdzie R szuka wpisów rejestru. Funkcja, którą rJava wykorzystuje do znalezienia Javy, znajduje się w funkcji rJava :::. OnLoad. W ramach tej funkcji znajduje się podfunkcja o nazwie find.java. I skopiować zawartość tutaj:

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 
    } 

Kopiuj i wklej to do swojego okna R, a następnie uruchomić go find.java(). rJava szuka wpisu dla JavaHome. Jeśli tego nie ma na liście, brakuje go w rejestrze.

Można również ręcznie ustawić katalogu lokalizacji Java przez ustawienie go przed załadowaniem biblioteki:

Sys.setenv(JAVA_HOME='C:\\Your\\Java\\Directory') 
library(rJava) 
+6

Powyższe informacje są poprawne. Ponadto zwróć uwagę, że będziesz potrzebować pasujących architektur dla R i Java (jeśli korzystasz z 64-bitowego systemu Windows). W ostateczności możesz ustawić JAVA_HOME tak, aby wskazywała na instalację w Javie, ale zazwyczaj powyższe oznacza, że ​​coś jest nie tak z Twoją instalacją Java. –

+0

JDK jest zainstalowany na moim komputerze pc.java -version wersja Java "1.6.0_20" Środowisko wykonawcze Java (TM) SE (wersja 1.6.0_20-b02) Klient wirtualny Java HotSpot (TM) (wersja 16.3-b01, wersja mieszana tryb, dzielenie się) –

+0

Zrobiłem kilka dodatków w mojej odpowiedzi. – nograpes

2

Jeśli podobnie jak ja nie masz uprawnień administratora, aby zainstalować 64-bitowy Java, tylko otwarte 32- bit R i powinno działać poprawnie na twoim 64-bitowym komputerze, jako że część problemu wydaje się być funkcją biblioteki rJava wywołującą wbudowane funkcje/procedury Java, która może być zaprojektowana tylko dla 32-bitowego interfejsu z Excel/Windows i prawdopodobnie zbyt duża zadanie w tym czasie, aby wszystko zmienić.

0

Odpowiedź w link rozwiązała mój problem.

Przed rozwiązaniem próbowałem, dodając JAVA_HOME do środowisk Windows. Rozwiązał ten błąd, ale stworzył kolejny problem. Rozwiązanie w powyższym linku rozwiązuje ten problem bez tworzenia dodatkowych problemów.

Powiązane problemy