使用RStudio时出现rJava包加载错误(可能是LD_LIBRARY_PATH问题)

4

我遇到了与这个问题讨论的相同错误信息,它归结为:

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared object '/home/anh/Rlibs/rJava/libs/rJava.so':
  libjvm.so: cannot open shared object file: No such file or directory

问题在于按照该答案的做法(即将LD_LIBRARY_PATH设置为指向libjvm.so)解决了我在命令行R中的问题,但Rstudio仍然找不到libjvm.so
系统规格: Ubuntu 14.04, R 3.1.1, Rstudio Desktop 0.98, 已经执行了apt-get install r-cran-rjava

RStudio不运行R代码,它是一个集成开发环境。R仍然运行代码。如果有RStudio特定的问题,您可能需要使用他们的支持论坛。这个问题似乎已经在那里得到了解决。链接 - hrbrmstr
@hrbrmstr - 不允许访问论坛上的该区域。 - John M
2个回答

7
感谢@hrbrmstr的评论,我在RStudio支持论坛中搜索了LD_LIBRARY_PATH并找到了这个解决方案。
问题归结为Rstudio无法找到libjvm.so。我在/etc/environment中设置了LD_LIBRARY_PATH,因此可以通过终端R加载library(rjava)。但是,Rstudio不会查看etc/environment,因此不知道LD_LIBRARY_PATH
要点:在~/.profile中设置LD_LIBRARY_PATH,使其对所有桌面应用程序可用(如Ubuntu wiki article on persistent environment variable所建议)。
export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-oracle/lib/amd64:/usr/lib/jvm/java-7-oracle/jre/lib/amd64/server

那么

sudo R CMD javareconf

实际上,在Ubuntu中你不能在.profile文件中设置LD_LIBRARY_PATH。你只能在交互式shell中设置它。更多信息请参考:https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/366728 和 https://help.ubuntu.com/community/EnvironmentVariables。除此之外,答案是正确的。 - haddr

3

好的。您所提供的Heisenberg建议对我来说是可行的,尽管我在~/.profile中放置的具体命令是:

export LD_LIBRARY_PATH=/usr/lib/jvm/default-java/jre/lib/amd64:/usr/lib/jvm/default-java/jre/lib/amd64/server

现在我可以在R命令行和Rstudio中加载rJava。感谢这个提示!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接