Libjvm.so: невозможно открыть файл общих объектов: нет такого файла или каталога

Попытка установить пакет rJava на R, на моем 14.10 ubuntu, используя этот код

if (!require(rJava)) install.packages('rJava')

появилось несколько ошибок, связанных с java, включая jni-проблемы, после переустановки jdk и попытки повторного запуска того же кода получить эту ошибку

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/usr/local/lib/R/site-library/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/rJava’
Warning in install.packages :
  installation of package ‘rJava’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpfFjrp0/downloaded_packages’
Warning message:
In library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,  :
  there is no package called ‘rJava’

искали решения, чтобы найти практически всех, предлагающих (для x64) выполнить эти команды

export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-oracle/lib/amd64:/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
sudo R CMD javareconf 

но это не сработало, есть ли что-нибудь еще, что я могу сделать? Я предоставлю все необходимые данные.

Ответ 1

Я получал ту же ошибку, когда пытался загрузить rJava в RStudio. Следующее решение работало для меня

1) sudo rstudio-server stop
2) export LD_LIBRARY_PATH=/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/jre/lib/amd64/default
3) sudo rstudio-server start

После выполнения вышеописанных шагов я смог успешно выполнить следующие шаги в RStudio

> library("DBI")
> library("rJava")
> library("RJDBC")

Ответ 2

Чтобы решить эту проблему,

  • Run

    sudo R CMD javareconf

  • Добавьте следующее в /etc/environment. Затем это будет устанавливаться каждый раз, когда ваш компьютер перезагрузится.

    LD_LIBRARY_PATH =/usr/lib/jvm/default-java/jre/lib/amd64/server/

    (изменение вашего пути)

  • Выполните следующие действия:

    источник/etc/environment

  • Перезагрузка сервера rstudio

Ответ 3

в случае, если ничего из этого не работает, попробуйте это и поблагодарите меня позже (общий ответ):)

R CMD javareconf -e
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH

Ответ 4

  • Я решил аналогичную проблему, выполнив следующую команду каждый раз, когда я хочу открыть RStudio. Перейдите в папку, содержащую исполняемый файл rstudio, откройте терминал и введите:

    LD_LIBRARY_PATH =/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Содержание/Главная/jre/lib/server: open -a rstudio

    Конечно, вы должны изменить путь в соответствии со своей версией Java.

  • Если предыдущее решение не работает, попробуйте прочитать эту статью: http://allanino.me/blog/programming/installing-some-r-packages/.

  • Если это решение не работает, последний шанс - установить rJava компиляцию из исходного кода.

Ответ 5

Если кто-то сейчас придет сюда, попробуйте следующий подход:

Шаги:

  • Найдите свое местоположение R. Он будет храниться в rsession-ld-library-path в rserver.conf файле. Или просто выполнив which R. Обычно это местоположение /usr/lib64/R/lib или /usr/lib64/microsoft-r/3.3/lib64/R/lib

  • Найдите файл libjvm.so, который обычно находится в пути usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server, в зависимости от того, какой вы используете. Зайдите в среду $JAVA_HOME.

  • Создайте символическую ссылку, используя ln -s sudo ln -s /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so /usr/lib64/microsoft-r/3.3/lib64/R/lib/libjvm.so

  • Перезапустить сервер R

Ответ 6

Проверьте, указывает ли $JAVA_HOME на правильное местоположение

echo $JAVA_HOME

Я использую openjdk, однако $JAVA_HOME указывал на какую-то несуществующую папку oracle-java.

После исправления $JAVA_HOME запустите

sudo R CMD javareconf

Проверьте вывод. Java headers gen. следует указать на /usr/bin/javah. Например:

[email protected] ~ $ sudo R CMD javareconf
Java interpreter : /usr/lib/jvm/default-java/bin/java
Java version     : 11.0.1
Java home path   : /usr/lib/jvm/default-java
Java compiler    : /usr/lib/jvm/default-java/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/lib/jvm/default-java/bin/jar

После этого я могу установить и загрузить пакет rJava.

Ответ 7

Ну, как @user3673 указал это решение для меня изменить следующую строку в /usr/lib/R/etc/ldpaths и /usr/lib/R/etc/ldpaths:

: ${R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/lib/amd64/server}

этим:

: ${R_JAVA_LD_LIBRARY_PATH=${JAVA_HOME}/jre/lib/amd64/server}

Ответ 8

Мы используем AZUL. Я мог видеть, что ZST не добавлен должным образом. После добавления ZST все работает нормально.