Проблемы при загрузке пакета в R из-за rJava

Когда я набираю require(xlsx) для загрузки пакета xlsx в R, отображаются следующие сообщения:

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

Я также попытался загрузить пакет rJava вручную, но получил это сообщение об ошибке:

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.

Есть ли у вас предложение о том, как решить проблему?

Ответ 1

Причина, вероятно, связана с тем, что вы используете ОС 64-разрядной ОС и R, но не имеете Java, установленного с той же архитектурой. Что вам нужно сделать, так это загрузить с этой страницы Java-64-бит: https://www.java.com/en/download/manual.jsp

После этого просто попробуйте перезагрузить пакет xlsx. Вам не нужно повторно запускать R.

Ответ 2

Потому что либо одна из версий Java (32 бит /64 бит) отсутствует на вашем компьютере. Попробуйте установить оба Jdks и запустить код.
После установки Jdks откройте R и введите код

system("java -version")

Это даст вам версию Jdk. Затем попробуйте загрузить пакет rJava. Это сработало для меня.

Ответ 3

У меня была аналогичная проблема, с которой мне приходилось устанавливать JAVA_HOME. Я устал первым в R:

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

И когда он действительно работал, я установил его в System Properties → Advanced → Environment Variables, добавив новую системную переменную. Затем я перезапустил R/RStudio, и все сработало.

Ответ 4

У меня была аналогичная проблема. Это вызвано зависимым пакетом "rJava". Эта проблема может быть решена путем перенаправления R для использования другого JAVA_HOME.

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

Это сработало для меня.

Ответ 5

Если у вас есть эта ошибка в RStudio, используйте приведенный выше экологический код Lauren и измените версию R на 32-битную версию в "Инструменты", "Глобальные параметры". Должны быть как 32-битные, так и 64-битные R-опции, если у вас более новая версия. Для этого потребуется перезапуск R и ограничьте параметры памяти. Однако установка 64-разрядной версии jre не потребуется.

Ответ 6

Ответ в ссылке разрешил мою проблему.

До разрешения я попытался добавить JAVA_HOME в среду Windows. Он разрешил эту ошибку, но создал другую проблему. Решение в этой ссылке разрешает эту проблему, не создавая дополнительных проблем.

Ответ 7

Альтернативный пакет, который вы можете использовать, - readxl. Этот пакет не требует внешних зависимостей.