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?

Pritam Kar
fonte
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.

Gianluca
fonte
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.

Lauren Fitch
fonte
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.

Edwin Vivek N
fonte
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.

Arul Samuel Rajkumar
fonte
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.

Odysseus Ithaca
fonte
2

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

Cristóbal Alcázar
fonte
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.)

Tamas
fonte
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.

Orhan Celik
fonte