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

tan*_*tan 8 java jdk r

尝试使用此代码在我的 14.10 ubuntu 上的 R 上安装 rJava 包

if (!require(rJava)) install.packages('rJava')
Run Code Online (Sandbox Code Playgroud)

在重新安装 jdk 后,遇到了一些与 java 相关的错误,包括 jni 问题,并尝试再次运行相同的代码,得到了那个错误

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’
Run Code Online (Sandbox Code Playgroud)

寻找解决方案,找到几乎所有建议(对于 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 
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我还能做些什么吗?我会提供任何需要的细节,在整个机器上搜索 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
Run Code Online (Sandbox Code Playgroud)

小智 12

执行以下操作应该可以解决您的问题:

$ export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-oracle/jre/lib/amd64/server
$ sudo R CMD javareconf
Run Code Online (Sandbox Code Playgroud)