Проблемы при загрузке пакета в 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. Этот пакет не требует внешних зависимостей.
Ответ 8
Если у вас есть эта проблема с macOS, здесь нет простого способа:( Особенно, если вы хотите использовать R3.4. Я уже был там;)
R 3.4, rJava, macOS и еще больше беспорядок;)
Для R3.3 немного проще (R3.3 был скомпилирован с использованием другого компилятора).
Приключения R, Java, rJava и macOS