Как настроить 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 на моем пути:

$ 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/

4 ответа

Ответ на /questions/23567196/ne-udaetsya-zagruzit-paket-r-xlsx-v-mac-os-1011/23567203#23567203 помог мне решить эту проблему на MacOS Sierra версии 10.12. В частности, он предоставил код в команде 1 ниже.

Три команды терминала, которые я использовал:

  1. sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
  2. sudo R CMD javareconf
  3. install.packages("rJava",type='source')

Это решение не может загрузить пакет R xlsx в Mac OS 10.11

sudo R CMD javareconf

install.packages("rJava",type='source')

Работал для меня

При попытке запустить этот тест на 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 на данный момент, но по крайней мере я могу сделать некоторую работу. Надеюсь, некоторые найдут лучшее решение:)

Мне это помогло:

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/lib/libserver.dylib

Я боролся с этой проблемой в течение нескольких часов. Здесь была действительно хорошая тема с некоторым фоном для rJava: https://groups.google.com/forum/

Следующие шаги закончились для меня:
(1) Обновить до последней версии JDK

(2) Установите следующие переменные окружения в моем ~/.bash_profile:
экспорт JAVA_HOME=$(/usr/libexec/java_home)
экспорт JAVA_CPPFLAGS = $ (/ usr / libexec / java_home) / include

(3) Переустановите rJava из исходного кода как root:
sudo R CMD УСТАНОВИТЬ rJava_0.9-8.tar.gz

(4) Переконфигурируйте Java как root:
sudo R CMD javareconf

Тогда я мог правильно установить другие библиотеки, которые зависели от правильной конфигурации rJava.

Другие вопросы по тегам