107

When I type require(xlsx) in order to load the package xlsx in R, the following messages is shown:

> require(xlsx)
Loading required package: xlsx
Loading required package: xlsxjars
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: JAVA_HOME cannot be determined from the Registry
Failed with error:  ‘package ‘rJava’ could not be loaded’

I've also tried to load the rJava package manually but got this error message:

require(rJava)
Loading required package: rJava
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: fun(libname, pkgname)
  error: No CurrentVersion entry in Software/JavaSoft registry! Try re-installing Java and make sure R and Java have matching architectures.

Do you have any suggestion on how to solve the problem?

zx8754
  • 52,746
  • 12
  • 114
  • 209
Pritam Kar
  • 1,071
  • 2
  • 7
  • 3
  • 5
    Try to install `rJava` ...Read [this](http://stackoverflow.com/questions/7019912/using-the-rjava-package-on-win7-64-bit-with-r/7604469#7604469) – agstudy Jun 29 '13 at 05:24
  • 7
    Which platform? If Windows then [this](http://www.r-statistics.com/2012/08/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from-the-registry/) may be helpful. – dardisco Jun 29 '13 at 06:08
  • also, your problem allow you to first saving your .xlsx file to a csv and then using read.csv, rather than trying to read in the .xlsx file – generic_user Jun 29 '13 at 07:40
  • 2
    If the last listed answer (16 votes at this point) fixed it for you, please mark the answer as accepted. – Slak Mar 25 '15 at 11:31
  • I ran into this issue too, but diverted it by using Hadley Wickham's `readxl` package. More discussion about here - [cannot install libraryxlsx in r and look for an alternative](http://stackoverflow.com/questions/23209152/cannot-install-libraryxlsx-in-r-and-look-for-an-alternative) – Ben Jul 06 '16 at 19:27

10 Answers10

144

The reason is probably linked to the fact you are using a 64-bit OS and R version but do not have Java installed with the same architecture. What you have to do is to download Java 64-bit from this page: https://www.java.com/en/download/manual.jsp

After that just try to reload the xlsx package. You shouldn't need to re-start R or if it does not work restart once.

Gianluca
  • 6,307
  • 19
  • 44
  • 65
  • 2
    (+1) I'm not sure if R's message *completely* points to this as the problem, but it was the case for me! To be sure, you can check. If you are running 64 bit OS, and 64 bit R, run the command line and try `java -d64 version`. If you have working 64 bit Java, it could be a system path problem. – AdamO Jun 30 '16 at 22:05
  • 3
    Did you mean `java -d64 -version`? – Harrison Mar 03 '17 at 21:03
  • If you're running a Mac with an M1 pro chip, this is a problem whose resolution remains a work in progress as of Dec 2022 : https://github.com/rstudio/rstudio/issues/9543 (scroll to bottom) – InColorado Jan 24 '23 at 16:00
10

Its because either one of the Java versions(32 bit/64 bit) is missing from your computer. Try installing both the Jdks and run the code.
After installing the Jdks open R and type the code

system("java -version")

This will give you the version of Jdk installed. Then try loading the rJava package. This worked for me.

Edwin Vivek N
  • 564
  • 8
  • 28
9

I had a similar problem what worked for me was to set JAVA_HOME. I tired it first in R:

Sys.setenv(JAVA_HOME = "C:/Program Files/Java/jdk1.8.0_101/")

And when it actually worked I set it in

System Properties -> Advanced -> Environment Variables

by adding a new System variable. I then restarted R/RStudio and everything worked.

M--
  • 25,431
  • 8
  • 61
  • 93
Lauren Fitch
  • 346
  • 4
  • 12
8

I had a similar issue. It is caused due the dependent package 'rJava'. This problem can be overcome by re-directing the R to use a different JAVA_HOME.

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

This worked for me.

zerweck
  • 657
  • 7
  • 14
4

An alternative package that you can use is readxl. This package doesn't require external dependencies.

M--
  • 25,431
  • 8
  • 61
  • 93
Cristóbal Alcázar
  • 1,153
  • 14
  • 26
4

If you have this error in RStudio, use Lauren's environmental code above and change your R version to the 32 bit version in Tools, Global Options. There should be both 32bit and 64bit R options if you have a newer version. This will require a restart of R, and limit your memory options. Installing the 64 bit version of the jre won't be required though.

M--
  • 25,431
  • 8
  • 61
  • 93
1

For reading/writing excel files, you can use :

  • readxl package for reading and writexl package for writing
  • openxlsx package for reading and writing

With xlsx and XLConnect (which use rjava) you will face memory errors if you have large files

Mostafa90
  • 1,674
  • 1
  • 21
  • 39
  • Unfortunately some excel files can only be opened with ```XLConnect```. Context: I work with a lot of excel files from data sources all over the world. My go to packages are ```readxl``` for reading and ```openxlsx``` for writing – David Alexander Aug 11 '22 at 13:43
1

For me, I simply needed to make sure the Java was 64-bit (to match R).

Here's how I downloaded and installed 64-bit Java:

  1. Go to: https://www.java.com/en/download/manual.jsp
  2. Click on "Windows Offline (64-bit)"
  3. Install it (you may need to find the file that downloaded and double click it, or it may automatically install)
  4. Close and reopen your R/RStudio session
  5. Everything will work as expected!
stevec
  • 41,291
  • 27
  • 223
  • 311
0

Answer in link resolved my issue.

Before resolution, I tried by adding JAVA_HOME to windows environments. It resolved this error but created another issue. The solution in above link resolves this issue without creating additional issues.

Community
  • 1
  • 1
Orhan Celik
  • 1,513
  • 15
  • 12
0

If you have this issue with macOS, there is no easy way here: ( Especially, when you want to use R3.4. I have been there already.

R 3.4, rJava, macOS and even more mess

For R3.3 it's a little bit easier (R3.3 was compiled using different compiler).

R, Java, rJava and macOS adventures

M--
  • 25,431
  • 8
  • 61
  • 93
Oo.oO
  • 12,464
  • 3
  • 23
  • 45