2016-06-09 95 views
14

在加載rJava包,我收到此錯誤:的R - 錯誤:.onLoad失敗loadNamespace()爲「rJava」

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/ankitagarwal5/Documents/R/win-library/3.2/rJava/libs/x64/rJava.dll': 
    LoadLibrary failure: %1 is not a valid Win32 application. 

In addition: Warning message: 
    package ‘rJava’ was built under R version 3.2.3 
Error: package or namespace load failed for ‘rJava’ 

我提到StackOverflow上各個崗位,並試圖做出相應的變化,但沒有工作。這些是我遵循的各種步驟來解決問題:

if (Sys.getenv("JAVA_HOME")!="") 
    Sys.setenv(JAVA_HOME="") 
library(rJava) 

這沒有奏效。

然後我嘗試這樣的:

options(java.home="C:\\Program Files\\Java\\jre1.8.0_91\\") 
library(rJava) 

這也不能工作。

我的jvm.dll是在我的Windows 7 64位操作系統這個位置 - C:\ Program Files文件(x86)的\的Java \ jre1.8.0_91 \斌\客戶

我還添加了C:\Program Files (x86)\Java\jre1.8.0_91\bin\client到我的PATH變量在我的環境變量,並重新啓動RStudio,並試圖再次安裝和加載rJava。這也沒有奏效。

我真的很感激,如果有人可以請幫我解決這個問題。

謝謝你們!

+0

嘗試從shell'R CMD javareconf'運行並重新安裝'rJava'。當然沒有保證。 – nicola

+0

請不要編輯你的問題的答案。相反,你是頁面底部的答案部分。 – josliber

+1

@josliber,提出了建議的更改。謝謝 。 – user3205469

回答

19

這爲我工作 -

這個錯誤通常是通過安裝一個Java版本(即64位Java或32位Java)適合於您正在使用的[R版型(解決即64位R或32位R)。這個問題很容易影響Windows 7用戶,因爲他們可能已經安裝了與他們正在使用的R版本不同的Java版本。

請注意,有必要'手動下載並安裝'64位版本的JAVA。默認情況下,下載頁面提供32位版本。

您可以從此鏈接中選擇您想要安裝的Java的確切版本。如果你可能(出於某種原因)在兩個版本的R上工作,你可以安裝兩個版本的Java(安裝「Java Runtime Environment」可能足夠滿足你的需求)。 (來源:Uwe Ligges)

其他可能的解決方案是試圖重新安裝rJava。

如果不工作,你也可以通過手動加載庫之前設置它設置你的Java位置的目錄:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version 
Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\jre7') # for 32-bit version 
library(rJava) 

請參閱此鏈接 - http://www.r-bloggers.com/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from-the-registry/

+1

狩獵後完美地工作。具有完整意義,希望rJava包中的調試消息在這個方向上更有針對性。 – ddisqq

0

我猜你的OS架構和R架構不匹配。如果他們匹配,下面的問題可能出在

它爲我工作後,我加入將R庫路徑環境變量列表在我的Windows 7

所以,

添加「C: /用戶/羅漢-PC /文檔/ R /贏庫/ 3。1「到系統變量列表下的路徑變量列表的路徑(不要與用戶變量下的PATH變量混淆)。重新啓動R並嘗試加載庫。有用!!!!!

4

我遇到了同樣的問題。一定要檢查Java的文件路徑。爲了解決我需要下載64位Java版本的錯誤。然而,在R上的下面的代碼沒有工作,因爲該文件夾是不正確for Java的最新版本:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version 

相反,我的名字改爲:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_144') 

希望幫助

0

我嘗試了其他人所說的無濟於事。對我來說,解決方案是消除即使在卸載後仍保留在那裏的計算機上的舊版R和32位版本的快捷方式。

相關問題