嗨,我遇到了 cran 的 rJava 包的问题。
我已经安装
sudo apt-get install openjdk-7-jdk
sudo apt-get install r-cran-rjava
跑了
sudo R CMD javareconf
# Java interpreter : /usr/bin/java
# Java version : 1.7.0_55
# Java home path : /usr/lib/jvm/java-7-openjdk-amd64/jre
# Java compiler : /usr/bin/javac
# Java headers gen.: /usr/bin/javah
# Java archive tool: /usr/bin/jar
然后我尝试运行 R 并加载 rJava 并得到以下错误:
R
> library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/usr/lib/R/site-library/rJava/libs/rJava.so':
libjvm.so: cannot open shared object file: No such file or directory
Error: package or namespace load failed for ‘rJava’
我在 Ubuntu 14.04 64 位并且正在使用 R 版本 3.1.0 (2014-04-10)——“春舞”
更新:实际上这不是特定于 OpenJDK,我只是尝试了 oracle java 8 并得到了相同的结果。我也在这里发现了这个我不愿意使用的解决方法,因为它确实是一种解决方法,并没有真正解释为什么它是必要的。在我看来,包装系统应该已经处理了这个问题。似乎 libjvm.so 是问题所在,我把它放在这里
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/jamvm/libjvm.so
/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so
/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server/libjvm.so
并且由于某种原因,尽管使用 sudo R CMD javareconf 进行了更新,rJava 还是找不到它们。
更新 2:情节变厚:如果我将 R 作为 sudo 运行,它可以工作。
感谢指点。