我正在尝试rJava在Win 7 64位的计算机上安装.我跑的时候
install.packages("rJava")
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好:
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
Run Code Online (Sandbox Code Playgroud)
但是当我尝试加载库时,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/me/Documents/R/win-library/2.13/rJava/libs/x64/rJava.dll':
LoadLibrary failure: %1 is not a valid Win32 application.
Error: package/namespace …Run Code Online (Sandbox Code Playgroud) 我想XLConnect在R中使用库.如果我执行
library(XLConnect)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
JAVA_HOME cannot be determined from the Registry
Run Code Online (Sandbox Code Playgroud)
要解决此问题,我首先设置JAVA_HOME变量:
Sys.setenv(JAVA_HOME='C:/Program Files (x86)/Java/jre1.8.0_65')
library(XLConnect)
Run Code Online (Sandbox Code Playgroud)
看起来它有助于我走得更远,但后来又遇到了另一个问题:
unable to load shared object 'C:/Program Files/R/R-3.2.2/library/rJava/libs/x64/rJava.dll'
Run Code Online (Sandbox Code Playgroud)
它想知道为什么R无法加载rJava.dll.至少此文件位于R搜索它的文件夹中:
C:\Program Files\R\R-3.2.2\library\rJava\libs\x64
Run Code Online (Sandbox Code Playgroud)
添加
请注意,该rJava.dll文件存在且位于那里,R正在搜索它.我想问题是32位和64位版本之间不兼容.我认为因为R抱怨:
% 1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)
那么,为什么R期望它Win32 application`? First, my OS is 64bit, second my Java is also for the 64bit and finally, the `rJava.dll` object is located in the folder with在名称中是x64`(因此,我认为它也是64位版本).