Как настроить rJava на OSX, чтобы выбрать правильный JVM -.jinit()
Я установил rJava, вызвав install.packages( "rJava" ) - проблем не было.
Однако когда я звоню:
library(rJava)
.jinit()
Я получаю:
JavaVM: requested Java version ((null)) not available. Using Java at "" instead.
JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
Error in .jinit() : JNI_GetCreatedJavaVMs returned -1
Я запускаю OSX:
Darwin MBP-2 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64
У меня установлен следующий Sun JDK:
$ ls /Library/Java/JavaVirtualMachines/
jdk1.7.0_79.jdk jdk1.8.0_65.jdk
Какая Java находится на моем PATH:
$ which java
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home//bin/Java
У меня также есть JavaHome, который определяется как:
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/
Ответы
Ответ 1
Ответ на fooobar.com/questions/161469/... помог решить эту проблему для меня в MacOS Sierra Version 10.12. В частности, он предоставил код в команде 1 ниже.
Три команды терминала, которые я использовал:
-
sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-
sudo R CMD javareconf
-
install.packages("rJava",type='source')
Ответ 2
Это решение Невозможно загрузить пакет R xlsx в Mac OS 10.11
sudo R CMD javareconf
install.packages("rJava",type='source')
Работал для меня
Ответ 3
При попытке запустить этот тест на OSX 10.11.5 (El Capitan)
http://www.r-bloggers.com/connecting-r-to-an-oracle-database-with-rjdbc/
Я продолжал получать ту же ошибку. Я попытался просто выполнить установку, как предложил Тим Рид. Я заметил, что моя версия R Studio (версия 0.99.896) продолжала жаловаться на установку 1.6 Legacy Java для OSX.
Я установил устаревшую Java с веб-сайта https://support.apple.com/kb/DL1572?locale=en_US
Затем выполнил более простой тест в R Studio.
library(rJava)
.jinit()
print(.jcall("java/lang/System", "S", "getProperty", "java.version"))
Мои результаты:
> library(rJava)
> .jinit()
> print(.jcall("java/lang/System", "S", "getProperty", "java.version"))
[1] "1.6.0_65"
Рад видеть, что я провел свой другой тест (затем тот, который начал меня по этому пути). Я до сих пор не мог заставить его установить самую последнюю версию Java.
Я сделал еще одну переустановку пакета rJava
install.packages("rJava",type='source')
и все работает нормально, используя версию Java 1.6 на данный момент, но по крайней мере я могу проделать определенную работу. Надеюсь, что некоторые натолкнутся на лучшее исправление:)
Ответ 4
Я боролся с этой проблемой в течение нескольких часов. На rJava была действительно хорошая тема:
https://groups.google.com/forum/#!topic/r-sig-mac/eFSDrjphgGs
Следующие шаги оказались для меня работой:
(1) Обновление до новейшего JDK
(2) Задайте следующие переменные среды в моем ~/.bash_profile:
экспорт JAVA_HOME = $(/usr/libexec/java_home)
экспорт JAVA_CPPFLAGS = $(/usr/libexec/java_home)/include
(3) Переустановите rJava из источника с правами root:
sudo R CMD INSTALL rJava_0.9-8.tar.gz
(4) Переконфигурируйте Java как root:
sudo R CMD javareconf
Затем я мог бы правильно установить другие библиотеки, которые зависели от правильной конфигурации rJava.