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

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

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 

но это не сработало, я могу еще что-нибудь сделать? Я предоставлю любую необходимую информацию, и поиск libjvm.so на всей машине привел к этому

/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/jdk1.8.25/jre/lib/amd64/server/libjvm.so
/usr/local/java/jre1.7.0_75/lib/amd64/server/libjvm.so

3 ответа

Выполнение следующего должно решить вашу проблему:

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

Иногда это нужно R CMD javareconf -e

см. https://stackoverflow.com/a/13446026/2803344

Шаги :

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

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

  3. Создайте символическую ссылку, используя ln -ssudo 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

  4. Перезагрузите R сервер

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