R - Ошибка:.onLoad failed в loadNamespace() для 'rJava'

При загрузке пакета rJava я получаю эту ошибку:

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)

error: unable to load shared object 'C:/Users/ankitagarwal5/Documents/R/win-library/3.2/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  %1 is not a valid Win32 application.

In addition: Warning message:
  package ‘rJava was built under R version 3.2.3 
Error: package or namespace load failed for ‘rJava

Я ссылался на различные сообщения в StackOverflow и пытался внести соответствующие изменения, но ничего не получилось. Вот несколько шагов, которые я предпринял для решения проблемы:

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

Это не сработало.

Затем я попробовал это:

options(java.home="C:\\Program Files\\Java\\jre1.8.0_91\\")
library(rJava)

Это тоже не сработало.

Мой jvm.dll находится в этом месте в моей 64-разрядной ОС Windows 7 - C:\Program Files (x86)\Java\jre1.8.0_91\bin\client

Я также добавил C:\Program Files (x86)\Java\jre1.8.0_91\bin\client в свою переменную PATH в своих переменных среды и перезапустил RStudio и попытался снова установить и загрузить rJava. Это тоже не сработало.

Я был бы очень признателен, если бы кто-то мог помочь мне решить эту проблему.

Спасибо, парни!

Ответ 1

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

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

Обратите внимание, что необходимо "вручную загрузить и установить 64-разрядную версию JAVA. По умолчанию страница загрузки содержит 32-битную версию.

Вы можете выбрать точную версию Java, которую вы хотите установить по этой ссылке. Если вы можете (по какой-то причине) работать в обеих версиях R, вы можете установить обе версии Java (установка "Java Runtime Environment", вероятно, достаточно для ваших нужд). (Источник: Уве Лиггс)

Другие возможные решения пытаются переустановить rJava.

Если это не работает, вы также можете вручную установить каталог своего местоположения Java, установив его перед загрузкой библиотеки:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version
Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\jre7') # for 32-bit version
library(rJava)

См. Эту ссылку: http://www.r-bloggers.com/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from-the-registry/

Ответ 2

Я столкнулся с той же проблемой. Обязательно проверьте путь к файлу для Java. Чтобы решить эту ошибку, мне нужно было скачать 64-битную версию Java. Однако следующий код в R не работал, поскольку папка была неправильной для последней версии для Java:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre7') # for 64-bit version

Вместо этого я изменил имя на:

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_144') 

надеюсь, это поможет

Ответ 3

Я заметил в разных свежих установках R, RStudio и rJava в WIndows, что исправляет ошибку:

  1. Удалить R
  2. Переустановите R, но выберите только одну архитектуру. Пример: x64 или x86, но не оба. Это приводит к запутыванию R или RStudio при компиляции.

В моем случае я исправил сообщение

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)

error: unable to load shared object 'C:/Users/ankitagarwal5/Documents/R/win-library/3.2/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  %1 is not a valid Win32 application.

Следуя шагам 1 и 2 выше.

Ответ 4

Я предполагаю, что ваша архитектура ОС и архитектура R не соответствуют друг другу. Если они совпадают, может возникнуть проблема

Он работал для меня после того, как я добавил путь библиотеки R к списку переменных окружения в моих окнах 7.

Так,

Добавьте 'C: /Users/Rohan-PC/Documents/R/win-library/3.1' этот путь к списку переменных пути в списке Системные переменные (не путать с переменной PATH в переменных пользователя). Перезагрузите R и попробуйте загрузить библиотеку. Оно работает!!!!!

Ответ 5

Я попробовал то, что другие сказали, чтобы не воспользоваться. Для меня решение заключалось в том, чтобы удалить старые папки и ярлыки R-версии 32-бит на моем компьютере, которые остались там даже после деинсталляции.