Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why R is unable to load a shared object?

Tags:

r

xlconnect

I am trying to use XLConnect library in R. If I execute

library(XLConnect)

I get the following error message:

JAVA_HOME cannot be determined from the Registry

To resolve this problem I set first the JAVA_HOME variable:

Sys.setenv(JAVA_HOME='C:/Program Files (x86)/Java/jre1.8.0_65')
library(XLConnect)

It looks like it helps me to come further but then I get another problem:

unable to load shared object 'C:/Program Files/R/R-3.2.2/library/rJava/libs/x64/rJava.dll'

It wonder why R cannot load rJava.dll. At least this file is located in the folder where R searches for it:

C:\Program Files\R\R-3.2.2\library\rJava\libs\x64

ADDED

Please note that the rJava.dll file exists and it is located there, where R is searching for it. I guess that the problem is in incompatibility between 32bit and 64bit versions. I assume that because R complains:

% 1 is not a valid Win32 application

Well, why do R expect it to be a 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 withx64` in the name (so, I assume it is also a 64bit version).

like image 947
Roman Avatar asked Nov 11 '15 17:11

Roman


1 Answers

I faced the same issue . Please locate jvm.dll should be in (your JRE version could be different )

C:\Program Files (x86)\Java\jre1.8.0_65\bin\client

or

C:\Program Files (x86)\Java\jre1.8.0_65\bin\server

add this path to your windows system path and you are good to go .but keep in mind the version of jre and R should be consistent,if your java is in Program Files its 64 bit so launch from 64 bit R if its in Program Files (x86)its 32 bit so use 32 bit R

like in my case it showed error in 64 bit enter image description here

but worked perfectly in 32 bit enter image description here

like image 53
Bg1850 Avatar answered Sep 29 '22 08:09

Bg1850