libjvm.so:无法打开共享对象文件:没有这样的文件或目录

试着在R上安装rJava软件包,在我的14.10 ubuntu上,使用这个代码

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

几乎没有与包括jni问题的Java相关的错误,重新安装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' 

寻找解决scheme,find几乎每个人都build议(为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 

但那不起作用,还有什么我可以做的吗? 我会提供任何所需的细节

当我尝试在RStudio中加载rJava时,我遇到了同样的错误。 以下解决方案为我工作

 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") 

要解决这个问题,


  1. sudo R CMD javareconf

  2. 将以下内容添加到/ etc / environment中。 这将在每次您的机器重新启动时设置。

    LD_LIBRARY_PATH = / usr / lib中/ JVM /缺省的java / JRE / LIB / AMD64 /服务器/

    (改变你的路径)

  3. 运行以下命令:

    源/ etc /环境

  4. rstudio服务器重新启动

如果以上都不行的话,试试这个,稍后再谢谢(通用答案:))

 R CMD javareconf -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH 
  • 我每次打开RStudio时都运行以下命令解决了类似的问题。 转到包含rstudio可执行文件的文件夹,打开终端并输入:

    LD_LIBRARY_PATH = / Library / Java / JavaVirtualMachines / jdk1.7.0_51.jdk / Contents / Home / jre / lib / server:open -a rstudio

    当然,你必须根据你的Java版本来改变路径。

  • 如果以前的解决方案不起作用,请阅读以下文章: http : //allanino.me/blog/programming/installing-some-r-packages/ 。

  • 如果这个解决方案不起作用,最后的机会是安装rJava从源代码编译它。

如果有人现在来这里,请尝试下面的方法:

脚步:

  1. 找到你的R位置。 它将被存储在rserver.conf文件的rsession-ld-library-path中。 或者只是通过做which R 位置通常是/usr/lib64/R/lib/usr/lib64/microsoft-r/3.3/lib64/R/lib

  2. 通常在usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server路径中找到libjvm.so文件,具体取决于您使用的是哪一个。 检入$ JAVA_HOME环境。

  3. 使用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

  4. 重新启动R服务器