Проблеми при спробі завантажити пакет у 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 голосів на цей момент) зафіксувала її для вас, будь ласка, позначте відповідь як прийняту.
Слак,

Я теж зіткнувся з цим питанням, але відвернув його, використовуючи readxlпакет Хадлі Вікхема . Більше обговорень тут - неможливо встановити libraryxlsx в r і шукати альтернативу
Бен,

Відповіді:


123

Причина, ймовірно, пов’язана з тим, що ви використовуєте 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?
Гаррісон

8

У мене була подібна проблема, і що працювало для мене, це встановити JAVA_HOME. Я спочатку втомився в R:

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

І коли це насправді спрацювало, я встановив його у Властивості системи -> Додатково -> Змінні середовища, додавши нову системну змінну. Потім я перезапустив R / RStudio і все запрацювало.


7

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

system("java -version")

Це дасть вам встановлену версію Jdk. Потім спробуйте завантажити пакет rJava. Це спрацювало для мене.


4

У мене була подібна проблема. Це спричинено залежним пакетом 'rJava'. Цю проблему можна подолати, перенаправивши R на використання іншого JAVA_HOME.

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

Це спрацювало для мене.


4

Якщо у вас є ця помилка в RStudio, скористайтеся наведеним вище екологічним кодом Лорена та змініть свою версію R на 32-бітну в Інструментах, Глобальні параметри. Якщо у вас нова версія, мають бути 32-бітні та 64-бітні варіанти. Для цього потрібно буде перезапустити R і обмежити параметри пам’яті. Встановлення 64-розрядної версії jre не потрібно.



2

Здається, я знайшов вирішення проблеми, оскільки у мене була та сама проблема!

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


1

Відповідь у посиланні вирішило мою проблему.

До вирішення проблеми я спробував, додавши JAVA_HOME до середовищ Windows. Це вирішило цю помилку, але створило іншу проблему. Рішення за посиланням вище вирішує цю проблему без створення додаткових проблем.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.