为什么 rJava 不能在使用 OpenJDK 7 的 Ubuntu 14.04 上运行?
2022-09-03 04:51:26
嗨,我在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) - “Spring Dance”
更新:实际上这不是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
并且由于某种原因,rJava无法找到它们,尽管使用sudo R CMD javareconf进行了更新。
更新2:情节变厚:如果我以sudo的身份运行R,它就会起作用。
感谢指点。