Проблемы при попытке загрузить пакет в 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.

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


person Pritam Kar    schedule 29.06.2013    source источник
comment
Попробуйте установить rJava ... Прочтите это   -  person agstudy    schedule 29.06.2013
comment
Какая платформа? Если Windows, то это может быть полезным.   -  person dardisco    schedule 29.06.2013
comment
Кроме того, ваша проблема позволяет вам сначала сохранить файл .xlsx в csv, а затем использовать read.csv, а не пытаться прочитать файл .xlsx   -  person generic_user    schedule 29.06.2013
comment
Если последний из перечисленных ответов (16 голосов на данный момент) исправил это за вас, отметьте ответ как принятый.   -  person Slak    schedule 25.03.2015
comment
Я тоже столкнулся с этой проблемой, но решил ее решить с помощью пакета readxl Хэдли Уикхема. Подробнее об этом здесь - невозможно установить libraryxlsx в r и посмотрите для альтернативы   -  person Ben    schedule 06.07.2016


Ответы (9)


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

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

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

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

system("java -version")

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

person Edwin Vivek N    schedule 04.03.2015

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

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

И когда это действительно сработало, я установил его в

Свойства системы - ›Дополнительно -› Переменные среды

добавив новую системную переменную. Затем я перезапустил R / RStudio, и все заработало.

person Lauren Fitch    schedule 11.10.2016

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

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

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

person Arul Samuel Rajkumar    schedule 26.06.2014

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

person Odysseus Ithaca    schedule 15.03.2017

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

person Cristóbal Alcázar    schedule 12.10.2016

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

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

person Orhan Celik    schedule 07.03.2016

Для чтения / записи файлов Excel вы можете использовать:

  • readxl пакет для чтения и writexl пакет для записи
  • openxlsx пакет для чтения и записи

С xlsx и XLConnect (которые используют rjava) вы столкнетесь с ошибками памяти, если у вас большие файлы

person Mostafa    schedule 01.02.2021

Если у вас есть эта проблема с macOS, здесь нет простого способа: (Особенно, когда вы хотите использовать R3.4. Я уже был там.

R 3.4, rJava, macOS и многое другое

Для R3.3 это немного проще (R3.3 скомпилирован с использованием другого компилятора).

Приключения R, Java, rJava и macOS

person Oo.oO    schedule 14.08.2017