当我试图在Eclipse中运行R控制台,我得到这个错误:
....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
对于Linux(Ubuntu的)用户:如果您有甲骨文的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版本取代Java-8-甲骨文的Java 7甲骨文)
然后:
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=/usr/lib/jvm/java-7-oracle/lib/amd64:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server
然后
sudo R CMD javareconf
注:路径(Java的7-Oracle)的需要基于Java安装更新。
我做了以下和它的工作对我来说:
export LD_LIBRARY_PATH=$JAVA_LD_LIBRARY_PATH
sudo R CMD javareconf
我不得不重新启动,则成为为好。
多年后,我结束了在这个问题上寻找由R报告错误后,之后我就没有成功安装了一个包上,需要转移到Oracle的Java。
所有我必须做些什么来解决它:
$ sudo R CMD javareconf
或只是设置在R中的图书馆吗?
我只是R中运行以下命令:
Sys.setenv(JAVA_HOME='/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server')
(通过此能够运行 “命令[R CMD javareconf” 中找到您的Java库路径替换 “/ usr / lib中/ JVM / Java的7-的OpenJDK,AMD64 / JRE / lib目录/ AMD64 /服务器”)
可能不是最完美的解决方案 - 但它为我工作!
我没有过的jdk安装,我可以与修复sudo apt-get install jdk-*
之后,我可以运行sudo R CMD javareconf
这之前,总是吸引了错误信息。 一切都被正确地设置并没有手动tweeks需要,其中,在那之后软件包安装中的R smootly跑(需要重启)。
当面对缺少limjvm.so
错误,确保正确的ldpaths
从标准配置中捡到/etc/R
相对于一个在/usr/lib/R/etc
。
这解决了我(的Linux,Debian的7.1.0,TC-外壳,R版本3.0.2)的LD_LIBRARY_PATH问题:
加入这一行的.cshrc:
SETENV LD_LIBRARY_PATH $ JAVA_HOME / JRE / lib中/ AMD64:$ JAVA_HOME / JRE / lib目录/ AMD64 /服务器
添加此命令到〜/ .login文件是不够的; 环境变量LD_LIBRARY_PATH仍然没有新的xterm知:回声$ LD_LIBRARY_PATH:LD_LIBRARY_PATH:未定义的变量。 (为什么??)
奇怪的是,从R作为超级用户时,不存在与发现libjvm.so没有问题。
我通过只是运行与须藤R,然后运行固定此install.packages('rJava`)
为我工作以上都不是,所安装的唯一的解决办法rJava
在Linux操作系统Ubuntu没有任何问题是通过RScript
安装基础R之后的命令:
$ sudo Rscript -e 'install.packages("rJava", repos = "http://cran.r-project.org/")'