Не удалось загрузить rJava на R

Я хочу загрузить rJava в R x64 3.1.2. ОС - Windows 8.1 64 бит

Хотя установка работает нормально:

  > install.packages("rJava")
    Installing package into ‘C:/Users/sony/Documents/R/win-library/3.1’
    (as ‘lib’ is unspecified)
    --- Please select a CRAN mirror for use in this session ---
    trying URL 'http://cran.utstat.utoronto.ca/bin/windows/contrib/3.1/rJava_0.9-6.zip'
    Content type 'application/zip' length 758898 bytes (741 Kb)
    opened URL
    downloaded 741 Kb

package ‘rJava’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
        C:\Users\sony\AppData\Local\Temp\RtmpamYUH7\downloaded_packages

Я получаю сообщение об ошибке при загрузке пакета:

library(rJava)
Error in get(Info[i, 1], envir = env) : 
  lazy-load database 'C:/Users/sony/Documents/R/win-library/3.1/rJava/R/rJava.rdb' is corrupt
In addition: Warning message:
In get(Info[i, 1], envir = env) : internal error -3 in R_decompress1
Error: package or namespace load failed for ‘rJava’

Я знаю, что работаю над битом R-64, и в то же время для переменной среды Path установлено значение:

C:\Program Files\Java\jdk1.7.0_51\bin;C:\Program Files\Java\jre7\bin\server;

Кроме того, версия Java тоже 64-битная. Я не понимаю причину ошибки.

При ручной настройке через R:

options(java.home="C:\\Program Files\\Java\\jdk1.7.0_51\\bin")
library(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/sony/Documents/R/win-library/3.1/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  The specified module could not be found.

Error: package or namespace load failed for ‘rJava’

Любой совет? Ошибка, похоже, возникла после того, как я удалил какую-то старую версию Java.

ДРУГИЕ: Также просто добавлю, что я не устанавливаю JAVA_HOME в качестве переменной среды.

Удаление и переустановка R также не решает проблему.

Удаление старых версий Java тоже бесполезно.


person Abhishek Bhatia    schedule 26.12.2014    source источник
comment
Я бы начал с того, чтобы убедиться, что вы не перепутали 32/64-битную Java и R.   -  person Dirk Eddelbuettel    schedule 26.12.2014
comment
У меня была та же проблема, и я смог решить ее, вручную загрузив и установив 64-разрядную версию JAVA отсюда: java.com/en/download/manual.jsp   -  person DanielPNewman    schedule 26.02.2016


Ответы (8)


Использовать:

Sys.setenv(JAVA_HOME='...path to JRE...')

e.g.

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jdk1.7.0_51\\jre')

Ваша переменная среды неверна.

person qjgods    schedule 27.12.2014
comment
Я просто переустановил Java 64 бит, это сработало. Я не знаю, может быть, проблема была с переменной окружения. - person Abhishek Bhatia; 28.12.2014
comment
Я установил Java JDK в соответствии с stackoverflow.com/questions/14631494/, что приблизило меня к решению... - person user1477388; 09.06.2015
comment
Изменить: мне также пришлось добавить новый JDK в PATH моей среды и отключить его в RStudio Sys.setenv(JAVA_HOME='') - person user1477388; 09.06.2015
comment
обратные штрихи должны быть двойными - person userJT; 29.04.2016
comment
установите путь и перезапустите Rgui.exe. - person RYO ENG Lian Hu; 20.08.2017

Я получил аналогичную ошибку:

> library(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:/program files/R/R-3.1.2/library/rJava/libs/x64/rJava.dll':
  LoadLibrary failure:  The specified module could not be found.

Мой JAVA_HOME указывал на JDK, а не на JRE.

> Sys.getenv("JAVA_HOME")
[1] "c:\\java\\jdk1.7.0_55"
> Sys.setenv(JAVA_HOME="c:\\java\\jdk1.7.0_55\\jre")

Теперь я мог загрузить rJava и xlsx в R.

person manoj    schedule 06.05.2015

Я столкнулся с подобной проблемой и потратил целый день, чтобы решить ее. Хотя мой компьютер, Windows7 и Rstudio 64-битные, но моя Java 32-битная (!) Как только я это понял, я загружаю 64-битную Java. Мне нужно загрузить вручную, автоматическая загрузка приведет к 32-битной версии, потому что мой браузер Chrome 32-битный. 64-битная Java будет автоматически установлена ​​в

C:\Program Files\Java, однако 32-разрядная версия Java будет автоматически установлена ​​в C:\Program Files (x86)\Java.

Это важный индикатор, говорящий мне, что моя Java 64-битная или 32-битная.

После установки 64-битной Java все работает отлично!

person Sunny    schedule 24.10.2016

Столкнулся с подобным сообщением об ошибке.

Пробовал несколько шагов, перечисленных здесь.

  1. Установить окружение Переменная JAVA_HOME. => Не сработало.
  2. Пытался установить rJava +> Не получилось Шаги 3,4,5 сработали..
  3. Обновлена ​​моя 64-битная версия Java 8.xx (последняя доступная)
  4. install.packages(rJava) ==> Успех
  5. install.packages(RWeka) ==> Успех
person user2162611    schedule 23.05.2017

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

Sys.getenv("Path")

Я нахожу что-то в выводе, похожее на

C:\\Program Files \\Java\\jre1.8.0_112\\bin\\server\\

где последние несколько цифр подпапки jre устарели.

Чтобы исправить это везде, вы можете отредактировать переменную среды Windows. Для этого нажмите клавишу WINDOWS + X, выберите в меню Командная строка (администратор) и введите

rundll32.exe sysdm.cpl,EditEnvironmentVariables

в командном поле. Это вызовет это диалоговое окно с правами редактирования для переменной PATH (и других системных переменных):

введите здесь описание изображения

Интерфейс Windows для редактирования длинных переменных среды немного громоздкий, поэтому после нажатия кнопки Изменить... мне нравится копировать и вставлять полученный беспорядок путей к Notepad.exe. , сделайте работу там и скопируйте-вставьте обратно.

person lebelinoz    schedule 12.05.2017

Была такая же проблема:

Я запускал 64-bit R, вы можете проверить версию, закрыв и снова открыв RStudio. Он должен быть вверху.

У меня была установлена ​​32-bit java, т.е. папка Java находилась внутри C:\Program Files (x86).

Я просто зашел на Java.com, скачал 64-bit Java и добавил его местоположение в конце PATH в System variables, и теперь я могу загрузить rJava. (Установка попросила меня избавиться от старой версии, что я и сделал)

person Shery    schedule 10.07.2017

Вероятно, это проблема с настройкой указателя JAVA_HOME. Если у вас не JDK, а JRE, вам, возможно, придется сделать следующее: Sys.setenv(JAVA_HOME='C:\Program Files\Java\jre1.8.0_161')

Не забудьте изменить числа после «jre» в зависимости от того, что у вас есть на вашем компьютере. Вот ссылка, объясняющая разницу между JDK и JRE.

person Bowen Chen    schedule 23.08.2018

Попробуйте загрузить ежедневную сборку RStudio: http://dailies.rstudio.com

У меня это сработало со второй попытки после того, как я перепробовал все остальное (обновил R, Rstudio, Java, переустановил rJava миллион раз и следовал всем советам stackoverflow).

Совет пришел от RStudio форумы поддержки:

RStudio действительно не может прочитать некоторую информацию о запуске, обычно предоставляемую R здесь...

У нас есть потенциальное исправление для этого в последних ежедневных сборках RStudio — если вы хотите, вы можете попробовать загрузить и протестировать с http://dailies.rstudio.com

person havi    schedule 08.03.2018