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

93

Когда я печатаю 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.

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

Притам Кар
источник
4
Попробуйте установить rJava... Прочтите это
agstudy
6
Какая платформа? Если Windows, то это может быть полезно.
dardisco
Кроме того, ваша проблема позволяет вам сначала сохранить файл .xlsx в csv, а затем использовать read.csv, вместо того, чтобы пытаться читать файл .xlsx
generic_user
2
Если последний из перечисленных ответов (16 голосов на данный момент) исправил это за вас, отметьте ответ как принятый.
Slak
Я тоже столкнулся с этой проблемой, но решил ее решить с помощью readxlпакета Hadley Wickham . Подробное обсуждение здесь - невозможно установить libraryxlsx в r и искать альтернативу
Бен

Ответы:

125

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

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

Джанлука
источник
2
(+1) Я не уверен, что сообщение R полностью указывает на это как на проблему, но это было для меня! Конечно, вы можете проверить. Если вы используете 64-битную ОС и 64-битную R, запустите командную строку и попробуйте java -d64 version. Если у вас работает 64-битная Java, это может быть проблема с системным путем.
AdamO
3
Вы имели в виду java -d64 -version?
Harrison
8

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

system("java -version")

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

Эдвин Вивек Н
источник
8

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

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

И когда это действительно сработало, я установил его в Свойства системы -> Дополнительно -> Переменные среды, добавив новую системную переменную. Затем я перезапустил R / RStudio, и все заработало.

Лорен Фитч
источник
4

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

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

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

Арул Самуэль Раджкумар
источник
4

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

Одиссей Итака
источник
2

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

Кристобаль Алькасар
источник
2

Я думаю, что нашел решение, так как у меня была такая же проблема!

Мое исправление заключалось в установке обновления 181 как 32-битной, так и 64-битной JRE (Java Runtime Environment) версии 8 (мне требуется 32-битная версия для другого приложения, но ваше исправление может быть просто переустановкой 64-битной версии самостоятельно).

Тамас
источник
1

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

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

Орхан Челик
источник