Problemas ao tentar carregar um pacote em R devido ao rJava


93

Quando eu digito require(xlsx)para carregar o pacote xlsxem R, as seguintes mensagens são mostradas:

> 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’

Também tentei carregar o rJavapacote manualmente, mas recebi esta mensagem de erro:

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.

Você tem alguma sugestão de como resolver o problema?


4
Tente instalar rJava... Leia isto
— agstudy de

6
Qual plataforma? Se for Windows, isso pode ser útil.
— dardisco

além disso, seu problema permite que você primeiro salve seu arquivo .xlsx em um csv e, em seguida, use read.csv, em vez de tentar ler no arquivo .xlsx
— generic_user

2
Se a última resposta listada (16 votos neste momento) corrigiu para você, marque a resposta como aceita.
— Slak,

Também encontrei esse problema, mas o desviei usando o readxlpacote de Hadley Wickham . Mais discussão sobre aqui - não é possível instalar o libraryxlsx em r e procure uma alternativa
— Ben

Respostas:


123

A razão provavelmente está ligada ao fato de você estar usando uma versão do sistema operacional e R de 64 bits, mas não ter o Java instalado com a mesma arquitetura. O que você precisa fazer é baixar o Java de 64 bits desta página: https://www.java.com/en/download/manual.jsp

Depois disso, tente recarregar o xlsxpacote. Você não deve precisar reiniciar R.


2
(+1) Não tenho certeza se a mensagem de R aponta completamente para isso como o problema, mas foi o caso para mim! Para ter certeza, você pode verificar. Se você estiver executando um SO de 64 bits e R de 64 bits, execute a linha de comando e tente java -d64 version. Se você estiver trabalhando com Java de 64 bits, pode ser um problema de caminho do sistema.
— AdamO

3
Você quis dizer java -d64 -version?
— Harrison

8

Eu tive um problema semelhante, o que funcionou para mim foi definir JAVA_HOME. Eu cansei primeiro em R:

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

E quando realmente funcionou, eu defini em Propriedades do sistema -> Avançado -> Variáveis ​​de ambiente adicionando uma nova variável de sistema. Em seguida, reiniciei o R / RStudio e tudo funcionou.


7

É porque uma das versões do Java (32 bits / 64 bits) está faltando no seu computador. Tente instalar os dois Jdks e execute o código.
Depois de instalar o Jdks, abra R e digite o código

system("java -version")

Isso fornecerá a versão do Jdk instalada. Em seguida, tente carregar o pacote rJava. Isso funcionou para mim.


4

Eu tive uma questão semelhante. É causado devido ao pacote dependente 'rJava'. Esse problema pode ser superado redirecionando o R para usar um diferente JAVA_HOME.

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

Isso funcionou para mim.


4

Se você tiver esse erro no RStudio, use o código ambiental de Lauren acima e altere sua versão R para a versão de 32 bits em Ferramentas, Opções globais. Deve haver opções de 32 bits e R de 64 bits se você tiver uma versão mais recente. Isso exigirá a reinicialização do R e limitará as opções de memória. No entanto, não será necessário instalar a versão de 64 bits do jre.


2

Um pacote alternativo que você pode usar é readxl . Este pacote não requer dependências externas.


2

Acho que encontrei a resolução pois tive o mesmo problema!

Minha correção foi instalar JRE (Java Runtime Environment) versão 8 de 32 bits e 64 bits, atualização 181. (Eu preciso de 32 bits para outro aplicativo, mas sua correção pode ser apenas reinstalar 64 bits por conta própria.)


1

A resposta no link resolveu meu problema.

Antes da resolução, tentei adicionar JAVA_HOME aos ambientes do Windows. Isso resolveu esse erro, mas criou outro problema. A solução no link acima resolve esse problema sem criar problemas adicionais.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.