我希望在R x64 3.1.2中加载rJava。 OS- Windows 8.1 64位
虽然安装似乎工作正常:
> install.packages("rJava")
Installing package into ‘C:/Users/sony/Documents/R/win-library/3.1’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
trying URL 'http://cran.utstat.utoronto.ca/bin/windows/contrib/3.1/rJava_0.9-6.zip'
Content type 'application/zip' length 758898 bytes (741 Kb)
opened URL
downloaded 741 Kb
package ‘rJava’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\sony\AppData\Local\Temp\RtmpamYUH7\downloaded_packages
加载包时出错:
library(rJava)
Error in get(Info[i, 1], envir = env) :
lazy-load database 'C:/Users/sony/Documents/R/win-library/3.1/rJava/R/rJava.rdb' is corrupt
In addition: Warning message:
In get(Info[i, 1], envir = env) : internal error -3 in R_decompress1
Error: package or namespace load failed for ‘rJava’
我知道我正在使用R-64位,同时环境变量Path设置为:
C:\Program Files\Java\jdk1.7.0_51\bin;C:\Program Files\Java\jre7\bin\server;
同样,Java版本也是64位。我不明白错误背后的原因。
手动设置R:
options(java.home="C:\\Program Files\\Java\\jdk1.7.0_51\\bin")
library(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/sony/Documents/R/win-library/3.1/rJava/libs/x64/rJava.dll':
LoadLibrary failure: The specified module could not be found.
Error: package or namespace load failed for ‘rJava’
有什么建议吗?在我卸载了一些旧版本的Java后,错误似乎已经出现了。
OTHERS: 另外,我还没有将JAVA_HOME设置为环境变量。
卸载和重新安装R似乎也无法解决问题。
删除旧的Java版本也无济于事。
答案 0 :(得分:32)
使用:
Sys.setenv(JAVA_HOME='...path to JRE...')
e.g。
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jdk1.7.0_51\\jre')
你的环境变量是错误的。
答案 1 :(得分:19)
我遇到了类似的错误:
> library(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:/program files/R/R-3.1.2/library/rJava/libs/x64/rJava.dll':
LoadLibrary failure: The specified module could not be found.
我的JAVA_HOME
指的是JDK
,而不是JRE
。
> Sys.getenv("JAVA_HOME")
[1] "c:\\java\\jdk1.7.0_55"
> Sys.setenv(JAVA_HOME="c:\\java\\jdk1.7.0_55\\jre")
我现在可以在rJava
中加载xlsx
和R
。
答案 2 :(得分:4)
我遇到了类似的问题,花了一整天的时间来修复它。 虽然我的计算机,Windows7和Rstudio是64位,但我的Java是32位(!)一旦我意识到,我下载了64位Java。我必须手动下载,自动下载将导致32位版本,因为我的Chrome浏览器是32位。
将自动安装64位Java然而,C:\ Program Files \ Java,将自动生成32位Java 安装在C:\ Program Files(x86)\ Java。
这是一个重要指标,告诉我我的Java是64位还是32位。
安装64位Java后,一切都很完美!
答案 3 :(得分:2)
面对类似的错误消息。
尝试了这里列出的几个步骤。
答案 4 :(得分:2)
有同样的问题:
我正在运行64-bit R
您可以通过关闭并重新打开RStudio
来检查哪个版本。它应该在顶部。
我安装了32-bit
java,即Java文件夹在C:\Program Files (x86)
内。
我只是去了Java.com并下载了64-bit Java
并在PATH
的{{1}}末尾添加了它的位置,我现在可以加载System variables
。 (装置要求我摆脱我做的旧版本)
答案 5 :(得分:1)
可能是JAVA_HOME指针的设置存在问题。如果您没有JDK但拥有JRE,则可能需要这样做: Sys.setenv(JAVA_HOME ='C:\ Program Files \ Java \ jre1.8.0_161')
请记住要根据计算机上的内容来更改“ jre”后的数字。这是link,解释了JDK和JRE之间的区别。
答案 6 :(得分:0)
尝试下载RStudio每日版本:http://dailies.rstudio.com
在我尝试了其他所有内容之后,它在第二次尝试时起作用了(更新了R,Rstudio,Java,重新安装了rJava一百万次,并遵循了所有stackoverflow建议)。
提示来自RStudio support forums:
RStudio确实无法读取通常由R提供的一些启动信息......
我们在最新的日常版本中有一个潜在的解决方案 RStudio - 如果您愿意,可以尝试下载和测试 http://dailies.rstudio.com