Как я могу установить rJava для использования с 64bit R на 64-битном компьютере с Windows?
Я установил пакеты iplots и rjava. Когда я делаю эту библиотеку (iplots), я получаю следующую ошибку. У меня на компьютере установлен JDK.
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
Ошибка: не удалось загрузить пакет 'rJava'
3 ответа
Ошибка говорит вам, что в вашем реестре нет записи, которая сообщает R, где находится Java на вашем компьютере. Ваш реестр поврежден, но, скорее всего, вы не установили Java. Вы можете установить либо Java Runtime Environment, либо Java Development Kit.
(Вы можете скачать Java здесь.)
Если вы установили Java, попробуйте переустановить его. Это должно положить записи обратно в ваш реестр.
Если это не сработает, вы можете начать искать именно то, где R ищет записи вашего реестра. Функция, которую rJava использует для поиска Java, находится в функции rJava:::. OnLoad. Внутри этой функции есть подфункция find.java. Я копирую содержимое здесь:
find.java <- function() {
for (root in c("HLM", "HCU")) for (key in c("Software\\JavaSoft\\Java Runtime Environment",
"Software\\JavaSoft\\Java Development Kit")) {
hive <- try(utils::readRegistry(key, root, 2),
silent = TRUE)
if (!inherits(hive, "try-error"))
return(hive)
}
hive
}
Скопируйте и вставьте это в окно R, а затем запустите find.java()
, rJava ищет запись для JavaHome. Если этого нет в списке, значит, он отсутствует в вашем реестре.
Вы также можете вручную установить каталог вашего местоположения Java, установив его перед загрузкой библиотеки:
Sys.setenv(JAVA_HOME='C:\\Your\\Java\\Directory')
library(rJava)
Если, как и я, у вас нет прав администратора для установки 64-битной Java, просто откройте 32-битную версию R, и она должна нормально работать на вашем 64-битном ПК, так как часть проблемы, кажется, заключается в том, что функция библиотеки rJava вызывает встроенные функции / процедуры Java, который может быть предназначен только для 32-битного интерфейса с Excel/Windows и, возможно, слишком большой задачей, чтобы изменить все.
Ответ в ссылке решил мою проблему.
До разрешения я попытался добавить JAVA_HOME в среду Windows. Это решило эту ошибку, но создало другую проблему. Решение по приведенной выше ссылке решает эту проблему без создания дополнительных проблем.
Любые пользователи Linux здесь, выполните команду:
sudo R CMD javareconf
Это обычно необходимо запустить после обновления системной установки Java, как предлагается здесь.