要安装R上的rJava包,在我的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
但没有工作,还有什么我可以做什么?我公司将提供任何需要的细节
我得到当我试图加载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")
为了解决这个问题,
如果没有上述工程的,试试这个,感谢我后来(通用的答案):)
R CMD javareconf -e
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH
rJava
从源代码编译它。如果有人现在来到这里,请尝试以下方法:
脚步:
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
路径,这取决于JRE你使用。检查$ 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
一个符号链接检查$JAVA_HOME
由点到正确的位置
echo $JAVA_HOME
我使用的OpenJDK,但是$JAVA_HOME
指着一些非现有的Oracle-java文件夹。
固定$JAVA_HOME
运行后
sudo R CMD javareconf
检查输出。 Java headers gen.
应指向/usr/bin/javah
。例如:
djhurio@Skyforger ~ $ 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
包。