2012-02-02 57 views

回答

23

錯誤是告訴你,有一個在您的註冊表中沒有條目,它告訴R其中的Java位於您的計算機上。您的註冊表已損壞,但更可能未安裝Java。您可以安裝Java Runtime Environment或Java Development Kit。

(You can download Java here.)

如果你安裝了Java,嘗試重新安裝它。這應該將條目放回您的註冊表中。

如果這不起作用,您可以開始查看R在哪裏查找您的註冊表項。 rJava用於查找Java的函數位於rJava :::。onLoad函數中。在那個函數中有一個叫做find.java的子函數。我在這裏複製的內容:

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 
    } 

複製並粘貼到您的[R窗口,然後運行它find.java()。 rJava正在爲JavaHome尋找一個入口。如果沒有列出,那麼它從註冊表中缺失。

你也可以通過手動加載庫之前設置它設置你的Java位置的目錄:

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

以上是正確的。另外,請注意,您需要R和Java的匹配體系結構(如果您位於64位Windows上)。作爲最後的手段,您可以將JAVA_HOME設置爲指向您的Java安裝,但通常上述意味着您的Java安裝有問題。 – 2012-02-03 05:21:59

+0

JDK安裝在我的pc.java -version java版本「1.6.0_20」 Java™SE運行時環境(build 1.6.0_20-b02) Java HotSpot™客戶端VM(版本16.3-b01,混合模式,共享) – 2012-02-03 13:49:53

+0

我在答案中做了一些補充。 – nograpes 2012-02-03 22:07:20

2

如果你像我一樣沒有管理員權限來安裝64位Java,只需打開32 bit R,它應該可以在你的64位PC上正常工作,因爲問題的一部分似乎是rJava庫函數調用嵌入式Java函數/例程,這些函數或例程可能只針對與Excel/Windows一起使用的32位接口,可能過大當時的任務是改變一切。

0

回答於link解決了我的問題。

在解決之前,我嘗試在Windows環境中添加JAVA_HOME。它解決了這個錯誤,但又產生了另一個問上述鏈接中的解決方案可解決此問題,而不會產生其他問題。

相關問題