我在Ubuntu 14.04.1上运行R 3.0.2。我已经安装了rJava软件包,但如果我用sudo启动它,我只能在R / RStudio中使用它。如果我单击应用程序启动器,或者只是在命令行中输入R,则在加载rJava库时会出现以下错误:
> 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 director
Error: package or namespace load failed for ‘rJava’
但是,如果我输入' sudo rstudio'或者' sudo R'在终端中,rJava加载没有问题。有人知道我做错了吗?
可能相关的问题:我通过输入
安装了rJavasudo apt-get install r-cran-rjava
在命令提示符下;安装正常的方式:
apt-get install r-cran-rjava
对我不起作用,也没有在R中安装(没有使用sudo启动它)。当我尝试以这种方式安装时,遇到了与this question中解决的问题相同的问题。
答案 0 :(得分:4)
除root之外的任何用户都可能无法读取文件/usr/lib/R/site-library/rJava/libs/rJava.so
。您可以通过以下方式检查:
ls -l /usr/lib/R/site-library/rJava/libs/rJava.so
如果输出为rw-------
或rw-rw----
,那么简单的用户就无法读取它。您可以使用chmod
命令更正此问题:
chmod -R a+rX /usr/lib/R/site-library/rJava/
答案 1 :(得分:2)
我尝试了此处列出的解决方案无济于事。在Ubuntu 14.04上运行的是在/ usr / lib中创建到libjvm.so的软链接。
ln -s /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so /usr/lib
答案 2 :(得分:1)
在启动R:
之前,您需要取消设置JAVA_HOME环境变量 unset JAVA_HOME
答案 3 :(得分:1)
从Rscript运行时看到这个问题。 Sudo工作,Rscript用户没有。我首先按照damienfrancois的建议做了chmod -R a + rX,但这没有用。然后我尝试取消设置JAVA_HOME,正如Gon建议的那样。这有效(或者可能与chmod结合使用)。