Неисправность загрузки rJava в R и RStudio [дубликат]

Вы можете использовать оператор &. Вот исходный код:

#include<stdio.h>
#include<stdlib.h>
int main(){

    int a[10];

    int *p; 

    printf("%p\n", (void *)a); 
    printf("%p\n", (void *)(&a+1));
    printf("---- diff----\n");
    printf("%zu\n", sizeof(a[0]));
    printf("The size of array a is %zu\n", ((char *)(&a+1)-(char *)a)/(sizeof(a[0])));


    return 0;
};

Вот пример вывода

1549216672
1549216712
---- diff----
4
The size of array a is 10
105
задан aseidlitz 8 February 2018 в 21:50
поделиться

15 ответов

У меня была такая же проблема, и я прошел те же шаги, что и вы. Последним шагом для запуска RStudio через Finder / Spotlight было подключение libjvm.dylib к / usr / local / lib:

sudo ln -f -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

-f флаг добавлен, чтобы принудительно перезаписать существующий файл / ссылку

252
ответ дан aseidlitz 16 August 2018 в 10:57
поделиться
  • 1
    Я также должен был сделать это: stackoverflow.com/a/32962637/34935 – dfrankow 21 September 2016 в 01:14
  • 2
    Работала над решением той же проблемы, когда было совершено обновление от El Capitan до Sierra. +1 – Murta 21 September 2016 в 17:43
  • 3
    Это позволило решить множество проблем; особенно если оригинальная ошибка исходит от cannot jfindclass[[1]], которая может исходить от rJava и драйвера JDBC – Jenks 31 January 2017 в 21:39
  • 4
    Я должен запускать эту команду каждый раз, когда я обновляю Java на своем Macbook Pro. Он по-прежнему работает на macOS Sierra 10.12.5 и обновлении версии Java версии 141. – thiagoveloso 19 July 2017 в 08:37
  • 5
    Это почти сработало для меня. Кроме того, мне пришлось добавить символическую ссылку в фреймворк R в файл /usr/local/lib/libjvm.dylib, так как / usr / local / lib / не похоже на @rpath. Например: ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/ – Dave X 2 November 2017 в 15:23

Эта строка ниже решила ту же проблему, с которой я столкнулся с пакетом rJava, как это делали некоторые другие в этом обсуждении. Я уверен, что есть несколько решений этой проблемы, и я искренне благодарю их всех за их вклад, потому что иногда одна строка, подобная приведенной ниже, экономит много времени, чтобы отправиться в мусор!

sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
-1
ответ дан Amit Joshi 16 August 2018 в 10:57
поделиться

Проверьте расположение файла libjvm.dylib.

Попробуйте это, в моем случае это сработало:

dyn.load('/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/lib/server/libjvm.dylib')
library(rJava)
1
ответ дан baduker 16 August 2018 в 10:57
поделиться

В macOS High Sierra (10.13.1) и Java версии 9 вам нужно использовать несколько другой путь JVM (обратите внимание на недостающую папку jre в пути по сравнению с инструкциями для более ранних версий Java):

sudo ln -f -s $(/usr/libexec/java_home)/lib/server/libjvm.dylib /usr/local/lib

Вы также должны уведомить R о JVM:

ln -s /usr/local/lib/libjvm.dylib /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/
15
ответ дан Endre 16 August 2018 в 10:57
поделиться
  • 1
    Потрясающие. Это сработало! Похоже, что предложения для Эль-Капитана не работают в Сьерра – Earnest_learner 6 February 2018 в 23:37
  • 2
    Большое спасибо, это сработало и для меня. macOS High Sierra 10.13.2 – pat_krat 18 March 2018 в 20:20
  • 3

Проблема с отсутствием изображения существует с совершенно новой установкой на 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. рамки / заголовки

2
ответ дан Galen 16 August 2018 в 10:57
поделиться

Так я правильно настроил его на двух Mac, работающих под управлением Mac OS X El Capitan (10.11.6):

  1. Удалите 'rJava', выпустив следующие команды в окне терминала:
    Rscript -e 'remove.packages("rJava")'
    sudo Rscript -e 'remove.packages("rJava")'
    
  2. Загрузите и установите программное обеспечение Java из Oracle: https://www.java.com/en/download/mac_download.jsp
  3. Добавьте следующие строки в /Users/<userid>/.bashrc, используя ваш любимый редактор:
    # Set JAVA_HOME so rJava package can find it
    export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)/jre
    
  4. Закройте и перезапустите все окна терминала, R и RStudio (чтобы выбрать изменения в .bashrc).
  5. Выполните следующую команду в окне терминала:
    sudo ln -sf $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
    
  6. Выполните следующую команду в окне терминала:
    sudo Rscript -e 'install.packages("rJava", repos="http://rforge.net", type="source")'
    
5
ответ дан Gregory R. Warnes 16 August 2018 в 10:57
поделиться
  • 1
    Я получаю ошибку licuuc library / linker, следуя этому, можете ли вы объяснить? Попытка установить на macOS Sierra, больше здесь (ранее в El Capitan). – hhh 16 July 2017 в 20:48

Здесь вы можете скачать унаследованную версию Java версии 6 для El Capitan: https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US После этого rJava пакет работает для меня.

0
ответ дан ignazw 16 August 2018 в 10:57
поделиться

Вы должны иметь возможность использовать CRAN rJava без необходимости перекомпилировать rJava или делать какие-либо дополнительные шаги, связывая библиотеку разделов с библиотекой библиотек R.

sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /Library/Frameworks/R.framework/Libraries
5
ответ дан Jim 16 August 2018 в 10:57
поделиться

Здесь, что работало для меня в MAC:

  1. в ваших ~/.profile или ~/.bashrc, добавьте эту строку: %export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home 1.1 % source .profile (или % source .bashrc)
  2. % sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
  3. remove.packages(rJava)
  4. remove.packages(Rweka)
  5. С терминала введите эту команду: %sudo R CMD javareconf
  6. install.packages("rJava", dependencies = TRUE, type = "source")
  7. install.packages("rJava", dependencies = TRUE, type = "source")
  8. Загрузите ваш library("rJava", "RWeka")

Желаем удачи.

1
ответ дан kamwo 16 August 2018 в 10:57
поделиться

В OSX El Capitan 10.11 у пользователя нет разрешения на запись в / usr / lib. Вместо этого используйте следующую команду:

sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
48
ответ дан lalas 16 August 2018 в 10:57
поделиться

Запустите в командной строке следующее: sudo R CMD javareconf

Несколько упомянутых выше решений упомянули об этом, но они также предлагают удалить и впоследствии переустановить пакет rJava. Я обнаружил, что эти дополнительные шаги не нужны.

0
ответ дан Megatron 16 August 2018 в 10:57
поделиться

Может быть, еще один простой ответ, который не касается вашей файловой системы:

$ 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.)

1
ответ дан Nathan Tuggy 16 August 2018 в 10:57
поделиться
  • 1
    У меня есть доморощенный R, и точная команда, которая работала для меня, это: 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. Я был в состоянии видеть, что rpath отсутствовал с otool -l /usr/local/lib/R/3.3/site-library/rJava/libs/rJava.so | grep LC_RPATH – Ian 5 June 2017 в 18:19
  • 2
    @ Возможно, вы знаете решение этого здесь , где я установил Java с Homebrew и теперь пытаюсь запустить rJava. Идеи? – hhh 16 July 2017 в 20:32
  • 3
    Большое спасибо, что сработало для меня! – goclem 29 December 2017 в 13:10

Выполняется следующая команда:

sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib

После этого в RStudio загрузка rJava выполняется через загрузку пакета «xlsx».

library("xlsx")

P.S. # 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.)

P.S. # 2 Я нахожу, что openxlsx работает намного быстрее и не полагается на работу Java, поэтому теперь я использую этот пакет. Надежда, которая помогает другим.

16
ответ дан Sander W. van der Laan 16 August 2018 в 10:57
поделиться
  • 1
    спасибо тебе, друг, ты спасешь мой день. Я пробовал с другими решениями, найденными вокруг, но именно это и решило мою проблему. – Matteo De Felice 11 March 2016 в 13:55
  • 2
    Другой пользователь El Cap (но используя MacGUI) с благодарностью. Пробовал это с первого раза, так как он выглядит простейшим (и более ранние усилия с инструкциями по установке Java runtime 1.6 не решили проблему) и немедленный успех с pkg: rJava и зависимость pkg; XLConnect. Возможно, потребуется установить устаревшую версию Java 1.6, доступную из Oracle и связанную с страницей Apple. – 42- 16 June 2016 в 16:39
  • 3
    Привет, ваш совет работает также с MacOS High Sierra, большое спасибо! – user8193079 24 January 2018 в 15:28

Вот несколько простых шагов для этого:

  1. удалить пакет rJava: remove.packages (rJava)
  2. закрыть R
  3. установить последние Java на вашем mac
  4. откройте терминал и введите следующую команду: sudo R CMD javareconf
  5. Откройте R и установите rJava с помощью этой команды: install.packages («rJava», dependencies = TRUE, type = "source")
4
ответ дан slfan 16 August 2018 в 10:57
поделиться
  • 1
    Я действительно сделал это, прежде чем я оказался здесь. Это заставило мою rjava-зависимую библиотеку установить, но не запустить. Связывание libjvm.dylib с /usr/local/lib заставило его также начать :) – jonalv 14 November 2016 в 16:58

Вы можете загрузить libjvm.dylib явно, запустив, как

dyn.load('/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/jre/lib/server/libjvm.dylib')
library(rJava)
26
ответ дан yuan 16 August 2018 в 10:57
поделиться
  • 1
    Возможно, конечно, но не удобно. Принятый ответ, вероятно, лучший вариант. +1 за предложение альтернативы. – thiagoveloso 19 July 2017 в 08:35
Другие вопросы по тегам:

Похожие вопросы: