Почему rJava не работает на Ubuntu 14.04 с использованием OpenJDK 7?

15

Привет, у меня проблемы с пакетом rJava от cran.

Я установил

sudo apt-get install openjdk-7-jdk
sudo apt-get install r-cran-rjava

и пробежал

sudo R CMD javareconf
# Java interpreter : /usr/bin/java
# Java version     : 1.7.0_55
# Java home path   : /usr/lib/jvm/java-7-openjdk-amd64/jre
# Java compiler    : /usr/bin/javac
# Java headers gen.: /usr/bin/javah
# Java archive tool: /usr/bin/jar

Затем я пытаюсь запустить R и загрузить rJava и получить следующую ошибку:

R
> library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory
Error: package or namespace load failed for ‘rJava’

Я на Ubuntu 14.04 64 бит и использую R версию 3.1.0 (2014-04-10) - «Весенний танец»

UPDATE: На самом деле это не относится к OpenJDK, я просто попробовал oracle java 8 и получил тот же результат. Также я нашел это обходное решение

задан Dr. Mike 05.05.2014 в 11:27
источник
  • Ответ можно найти здесь также - stackoverflow.com/a/25932828/3939832 –  Tejus Prasad 16.03.2016 в 20:04

5 ответов

7

У меня была та же проблема с аналогичной конфигурацией (R 3.1.0, Ubuntu 12.10, 32-бит). Я нашел ответ на то, что LD_LIBRARY_PATH установлен правильно, как описано здесь: ошибка: не удалось загрузить установленные пакеты сейчас , за исключением того, что Подкаталог - это «клиент», а не «сервер». Итак, теперь я настраиваю свою среду следующим образом:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/i386:$JAVA_HOME/jre/lib/i386/client
    
ответ дан persistentNoob 11.05.2014 в 01:16
  • Это действительно решает проблемы, которые у меня были. Остается только вопрос: почему LD_LIBRARY_PATH не установлен автоматически? Но в любом случае, как я уже сказал, это поставило проблему для меня. Благодарю. –  Dr. Mike 11.05.2014 в 12:02
  • Работал для меня на сервере ubuntu 14.04 export LD_LIBRARY_PATH = / usr / lib / jvm / java-7-openjdk-amd64 / jre / lib / amd64 /: / usr / lib / jvm / java-7-openjdk-amd64 / JRE / Библиотека / amd64 / сервер –  Sudipta Basak 23.08.2016 в 14:48
6

Я смог решить эту проблему, используя этот ответ: Ссылка

Это полезно, если у вас установлен Oracle java 7 или 8. Экспорт переменных в моем случае не был постоянным решением. Вы должны проверить, что R использует в качестве среды, выполнив:

Sys.getenv("JAVA_HOME")

, а затем вы можете использовать эту среду, создав файл java.conf on /etc/ld.so.conf.d/ , как указано в приведенной выше ссылке ответа.

    
ответ дан lapisdecor 11.10.2014 в 18:17
6

вы можете решить эту проблему, открыв rstudio в суперпользователе, например

sudo rstudio

, затем внутри R run

install.packages('rJava')
    
ответ дан sagarambat 09.03.2015 в 07:36
  • большое спасибо, это сработало для меня –  l--''''''---------'''''''''''' 29.06.2015 в 00:03
  • Более простое решение, оно также сработало для меня. Только этот «тип ...» не является командой терминала, поэтому его следует отформатировать по-разному. Спасибо. –  Rodrigo 31.07.2015 в 15:22
  • Если вы используете RStudio Server, команда sudo rstudio не применяется –  Patrik_P 03.03.2017 в 08:32
5

, если вы используете oracle java, используйте следующую команду:

sudo R CMD javareconf

не поможет:

sudo R CMD javareconf **JAVA_HOME**=(path where java home is located)
    
ответ дан sourav karwa 09.07.2015 в 13:46
0

Я пробовал много вещей, но не работал. Затем я попытался использовать

sudo rstudio

, а затем

install.packages('rJava')

Работает. Coool

    
ответ дан Ajay Jadhav 12.01.2016 в 10:11
  • Это сработало для меня, но перед установкой rJava мне нужно было сделать suudo R CMD javareconf' в терминале. –  Gorka 26.01.2018 в 14:53