Недавно я "обновился" с OSX Mountain Lion до Yosemite и с R 3.1.3 до 3.2. Сразу после обновления, когда я открыл R или RStudio, я получил всплывающее сообщение о том, что мне нужно установить Java 6. Кроме того, загрузка rJava
любого пакета, который зависит от rJava (например, xlsx
), вызвала сбой RStudio (R также разбился. когда я попробовал это, открыв R.app
напрямую).
Попробовав несколько исправлений, найденных в Stack Overflow и в других местах (более подробная информация ниже), я нахожусь в точке, где загрузка rJava
или любой другой пакет, который зависит от, rJava
больше не вызывает сбой R, но приводит к следующей ошибке:
library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.2/Resources/library/rJava/libs/rJava.so
Reason: image not found
Error: package or namespace load failed for ‘rJava’
Однако, если я вызываю R из командной строки, а затем загружаю rJava
или любой другой пакет, который зависит от rJava
него, кажется, что он работает (или, по крайней мере, я не получаю сообщений об ошибках).
Я пробовал несколько различных попыток исправления, некоторые из них несколько раз, и не могу точно вспомнить, что именно я делал в каком порядке (не понимал, что это будет такое болото, и на самом деле не отслеживал) , но вот суть:
В мой
.bash_profile
(за этот SO-ответ ) добавлено следующее :экспорт JAVA_HOME = "/ usr / libexec / java_home -v 1.8"
экспорт LD_LIBRARY_PATH = $ JAVA_HOME / jre / lib / serverПеренастроил java из командной строки следующим образом:
sudo R CMD javareconf -n
Проверил
options("java.home")
и обнаружил, что для него установлено значениеNULL
. Я попытался установить его следующим образом (по этому вопросу SO ):опции ( "java.home" = "/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Содержание / Главная / JRE")
Установил последнюю версию Java Development Kit и переустановил
rJava
из исходников (не помню, где нашел).
В какой-то момент, пробуя все это, я смог загрузить rJava
R без сбоя, но вместо этого получил сообщение об ошибке, опубликованное выше. Кроме того, когда я выхожу из RStudio, казалось, что программа закрывается нормально, но затем появляется сообщение «RStudio неожиданно завершает работу», указывающее на то, что программа вылетела из строя при попытке закрыть.
В конце концов я решил установить Java для OS X 2014-001 (Java 6), поскольку мне казалось, что у меня заканчиваются варианты. Теперь, когда я открывал R или RStudio, всплывающее сообщение «Этому программному обеспечению требуется Java 6» больше не появлялось. Однако я все еще получал .onLoad failed in loadNamespace() for 'rJava'
сообщение об ошибке, опубликованное выше.
При просмотре некоторых сообщений, которые я уже просматривал, я заметил еще один ответ SO, который я пропустил раньше, который рекомендовал открыть RStudio с помощью следующего кода командной строки, который дает RStudio правильный путь к java:
LD_LIBRARY_PATH = $ (/ usr / libexec / java_home) / jre / lib / server: открыть -a RStudio
Это открыло окно RStudio, и я также смог загрузить rJava
и пакеты, которые зависят от него, без ошибок.
Наконец, я попытался запустить R из командной строки (чего раньше не делал). Оказывается, в командной строке загрузка rJava
или какой-либо зависящий от него пакет rJava
работает и не выдает никаких ошибок.
Итак, теперь я могу приступить rJava
к работе, если открою RStudio из командной строки с кодом, который дает RStudio путь java (как указано выше). Однако я хотел бы найти способ решить основную проблему, какой бы она ни была, чтобы RStudio можно было открывать обычным способом Mac, без необходимости использования кладжа командной строки. Я также обеспокоен тем, что установка старой версии Java может вызвать проблемы в будущем.
Есть ли у кого-нибудь идеи, как диагностировать и решить эту проблему?
LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio
трюка, но оно больше не работает. Я написал сообщение в блоге об этой проблеме и описал ее там. Интересно, испытывают ли другие тоже эту проблему в этой конфигурации или это моя вина.Yosemite
, поэтому не уверен. См. Ниже ответ, связанный сEl Capitan
.El Capitan
ниже решение полезно, как только оноRStudio
загрузитсяrJava
должным образом.otool -L /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
получить список общих библиотек и способы их устранения. Я не знаю, как узнать содержимое среды выполнения@rpath
.Ответы:
У меня была та же проблема, и я проделал те же шаги, что и вы. Последним шагом, позволяющим запустить RStudio через Finder / Spotlight, было привязать libjvm.dylib к / usr / local / lib:
-f
добавлен флаг для принудительной перезаписи существующего файла / ссылкиисточник
cannot jfindclass[[1]]
rJava и драйвера JDBC/usr/local/lib/libjvm.dylib
файлу символическую ссылку в структуре R , поскольку / usr / local / lib /, похоже, не находится в @rpath. Например:ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/
В OSX El Capitan 10.11 у пользователя нет разрешения на запись в / usr / lib. Поэтому вместо этого используйте следующую команду:
источник
Вы можете загрузить libjvm.dylib явно, запустив как
источник
+1
за предложение альтернативы.В macOS High Sierra (10.13.1) и Java версии 9 вам необходимо использовать немного другой путь JVM (обратите внимание на отсутствующую
jre
папку в пути по сравнению с инструкциями для более ранних версий Java):Вы также должны уведомить R о JVM:
источник
Следующая команда работает:
После этого в RStudio загрузка rJava происходит через загрузку пакета «xlsx».
Среда PS # 1: Mac OS X El Capitan 10.11.3+ с RStudio 0.99.491+ и R 3.2.3+. (Сейчас я тестировал это также на macOS Sierra (10.12) и R.3.3.1.)
PS # 2 Я считаю, что
openxlsx
это намного быстрее и не зависит от Java в работе, поэтому сейчас я использую этот пакет. Надеюсь, что это поможет другим.источник
openxlsx
FTW!openxlsx
все равно лучше использовать .Вы должны иметь возможность использовать CRAN rJava без необходимости перекомпилировать rJava или выполнять какие-либо дополнительные действия, связывая разделяемую библиотеку с каталогом библиотек R frameworks.
источник
Вот как я настроил его, чтобы он работал правильно на двух Mac под управлением Mac OS X El Capitan (10.11.6):
Удалите 'rJava', выполнив следующие команды в окне терминала:
Загрузите и установите программное обеспечение Java из Oracle: https://www.java.com/en/download/mac_download.jsp
Добавьте следующие строки в
/Users/<userid>/.bashrc
свой любимый редактор:Закройте и перезапустите все окна терминала, R и RStudio (чтобы сохранить изменения
.bashrc
).Выполните следующую команду в окне терминала:
Выполните следующую команду в окне терминала:
источник
Вот простые шаги для этого:
Откройте R и установите rJava с помощью этой команды:
install.packages ("rJava", dependencies = TRUE, type = "source")
источник
libjvm.dylib
в/usr/local/lib
заставило его также начать :)Проблема «образ не найден» существует при новой установке на OSX High Sierra с последней версией Java SE 10 JDK.
Мне удалось решить проблему пути с помощью rJava, используя исправление, найденное на странице проблем rJava Github: https://github.com/su/rJava/issues/78
R CMD javareconf JAVA_CPPFLAGS = -I / System / Library / Frameworks / JavaVM.framework / Headers
источник
Вот что у меня сработало на MAC:
в вашем
~/.profile
или~/.bashrc
добавьте эту строку:%export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
1.1
% source .profile
(или% source .bashrc
)% sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
remove.packages(rJava)
remove.packages(Rweka)
%sudo R CMD javareconf
install.packages("rJava", dependencies = TRUE, type = "source")
install.packages("rJava", dependencies = TRUE, type = "source")
library("rJava", "RWeka")
Удачи.
источник
Может быть, еще один простой ответ, который не касается вашей файловой системы:
$ install_name_tool -add_rpath /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/server /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
(Замените
jdk1.8.0_131.jdk
своим путем JDK.)источник
install_name_tool -add_rpath /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/server /usr/local/lib/R/3.3/site-library/rJava/libs/rJava.so
. Я смог увидеть, что отсутствует rpathotool -l /usr/local/lib/R/3.3/site-library/rJava/libs/rJava.so | grep LC_RPATH
Проверьте расположение файла libjvm.dylib.
Попробуйте это, в моем случае это сработало:
источник
Я прошел через все способы устранения неполадок, которые смог найти, а затем установил jdk-11.0.1_osx-x64_bin.dmg из: Oracle downloads
После этого все заработало отлично.
Проверьте версию библиотеки, которая не была загружена при запуске библиотеки ('rJava'), и сопоставьте ее с версией java, которая вам нужна.
источник
Я заметил, что rJava довольно строго относится к версии JDK при загрузке в Rstudio.
В моем случае (Mac OS. 10.14.6 - Мохаве) я установил jdk-13, который был протестирован против jdk-11.
Я связал свою версию JDK с несуществующим каталогом, который, как предполагалось, действовал в Rstudio (JDK 11):
и на удивление он работает как шарм ...
Кстати, не было проблем с запуском 'rJava', следуя предыдущим инструкциям в родном R.
источник
Здесь вы можете загрузить устаревшую версию Java 6 для El Capitan: https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US После этого пакет rJava у меня работает.
источник
Эта строка ниже решила ту же проблему, что и у меня с
rJava
пакетом, как и некоторые другие в этом обсуждении. Я уверен, что есть несколько решений этой проблемы, и я искренне благодарю их всех за их вклад, потому что иногда одна строка, подобная приведенной ниже, позволяет сэкономить много времени, чтобы не попасть в корзину!источник
Выполните в командной строке следующее:
sudo R CMD javareconf
Об этом упоминалось в нескольких решениях выше, но они также предлагают удалить, а затем переустановить
rJava
пакет. Я счел эти дополнительные шаги ненужными.источник
sudo R CMD javareconf
но по-library(rJava)
прежнему выдает те же ошибки:Error: package or namespace load failed for ‘rJava’: .onLoad failed in loadNamespace() for 'rJava', details: call: dyn.load(file, DLLpath = DLLpath, ...) error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.5/Resources/library/rJava/libs/rJava.so': ... Reason: image not found
Вы можете изменить ссылку в R с помощью следующей команды:
источник