Ответ 1
Я нашел решение:
export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/lib/amd64:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server
то
sudo R CMD javareconf
Когда я попытался запустить консоль R в Eclipse, я получил эту ошибку:
....Please make sure that R package 'rj' (1.1 or compatible) is installed...
Поэтому я попытался установить его в консоли R следующим образом:
install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")
и получил эту ошибку:
** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rj.gd', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rj.gd/libs/rj.gd.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
и я обнаружил, что при установке rJava с использованием: install.packages("rJava")
получается аналогичная ошибка:
** testing if installed package can be loaded
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/home/alex/R/x86_64-pc-linux-gnu-library/2.15/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
Когда я запускаю sudo R CMD javareconf
, я получил этот вывод:
Java interpreter : /usr/bin/java
Java version : 1.7.0
Java home path : /usr/lib/jvm/java-7-oracle/jre
Java compiler : /usr/bin/javac
Java headers gen.: /usr/bin/javah
Java archive tool: /usr/bin/jar
NOTE: Your JVM has a bogus java.library.path system property!
Trying a heuristic via sun.boot.library.path to find jvm library...
Java library path: $(JAVA_HOME)/lib/amd64:$(JAVA_HOME)/lib/amd64/server
JNI linker flags : -L$(JAVA_HOME)/lib/amd64 -L$(JAVA_HOME)/lib/amd64/server -ljvm
JNI cpp flags : -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/linux
Updating Java configuration in /etc/R
Done.
кстати, моя конфигурация:
Ubuntu 11.10 64bit
Eclipse 3.7
Oracle-1.7-jdk
R version 2.15.1
Я нашел решение:
export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/lib/amd64:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server
то
sudo R CMD javareconf
Для пользователей Linux (Ubuntu): Если у вас установлен oracle-java (7/8). Он будет находиться в этом месте /usr/lib/jvm
и sudo
требуется доступ.
Создайте файл /etc/ld.so.conf.d/java.conf
со следующими данными:
/usr/lib/jvm/java-8-oracle/jre/lib/amd64
/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
(Замените java-8-oracle на java-7-oracle в зависимости от вашей версии Java)
Тогда:
sudo ldconfig
Перезапустите RStudio, а затем установите пакет rJava.
ИЛИ
Также альтернативным методом является экспорт LD_LIBRARY_PATH
со значением пути библиотеки Java, полученного из команды R CMD javareconf -e
, и запуск install.packages
У меня возникла аналогичная проблема и я смог решить ее, запустив
R CMD javareconf -e
Выход R CMD javareconf -e
Java interpreter : /export/apps/jdk/JDK-1_6_0_27/jre/bin/java
Java version : 1.6.0_27
Java home path : /export/apps/jdk/JDK-1_6_0_27
Java compiler : /export/apps/jdk/JDK-1_6_0_27/bin/javac
Java headers gen.: /export/apps/jdk/JDK-1_6_0_27/bin/javah
Java archive tool: /export/apps/jdk/JDK-1_6_0_27/bin/jar
Java library path: /export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
JNI linker flags : -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server -L/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64 -L/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64 -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm
JNI cpp flags : -I/export/apps/jdk/JDK-1_6_0_27/include -I/export/apps/jdk/JDK-1_6_0_27/include/linux
The following Java variables have been exported:
JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH
Running: /bin/bash
После установки LD_LIBRARY_PATH того же значения, что и JAVA_LD_LIBRARY_PATH, как показано на вышесказанном выше. Я смог установить rj.
export LD_LIBRARY_PATH=/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64/server:/export/apps/jdk/JDK-1_6_0_27/jre/lib/amd64:/export/apps/jdk/JDK-1_6_0_27/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Запустите R, а затем установите rj на
install.packages(c("rj", "rj.gd"), repos="http://download.walware.de/rj-1.1")
Я сделал следующее, и это сработало для меня:
export LD_LIBRARY_PATH=$JAVA_LD_LIBRARY_PATH
sudo R CMD javareconf
Мне также пришлось перезапустить R.
Спустя годы я закончил этот вопрос после поиска ошибки, сообщенной R после того, как я безуспешно установил пакет, на котором требуется переход на Oracle Java.
Все, что я должен был сделать, чтобы исправить это:
$ sudo R CMD javareconf
или просто установите библиотеку в R?
Я только что запустил эту команду в R:
Sys.setenv(JAVA_HOME='/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server')
(замените "/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server" на ваш путь к библиотеке Java, который можно найти в "sudo R CMD javareconf" )
Не может быть самым изящным решением, но это сработало для меня!
При отсутствии ошибок limjvm.so
убедитесь, что правильный ldpaths
выбран из стандартной конфигурации в /etc/R
по сравнению с той, что находится в /usr/lib/R/etc
.
Это исправляет проблему LD_LIBRARY_PATH для меня (Linux, Debian 7.1.0, tc-shell, R версии 3.0.2):
Добавьте эту строку в .cshrc:
setenv LD_LIBRARY_PATH $JAVA_HOME/jre/lib/amd64: $JAVA_HOME/jre/lib/amd64/server
Добавление этой команды в ~/.login было недостаточно; переменная окружения LD_LIBRARY_PATH все еще не была известна в новых xterms: echo $LD_LIBRARY_PATH: LD_LIBRARY_PATH: переменная Undefined. (Почему??)
Любопытно, что при запуске R в качестве суперпользователя не было проблем с поиском libjvm.so.
У меня не было установленного jdk, с которым я мог бы справиться
sudo apt-get install jdk-*
После этого я могу запустить sudo R CMD javareconf
, который раньше всегда выводил сообщение об ошибке. Все было правильно настроено и не требовалось вручную, и после этого установка пакета выполнялась сглаженно в R (требуется перезагрузка).
Я исправил это, просто запустив R с помощью sudo, а затем запустив install.packages('rJava`)
.
Ни одно из вышеперечисленных не работало для меня, единственным решением, которое установило rJava
в Linux Ubuntu без проблем, было передать команду RScript
после установки базы R:
$ sudo Rscript -e 'install.packages("rJava", repos = "http://cran.r-project.org/")'