我要问自己一个问题并回答它。我被 rJava 的安装困扰了很多次,最后我决定把所有问题放在一个线程中,并将其记录在 StackExchange 上。
我已经运行
export JAVA_HOME=/usr/lib/...
并echo $JAVA_HOME
显示正确的位置。但是 sudo R CMD javareconf 报告错误“无效的 JAVA_HOME”。发生了什么?当我
require(rJava)
在 中运行时sudo R
,它会给出“无法加载 libjvm.so”或“xxx 文件不存在”的错误,但require(rJava)
在 中可以工作R
。从 Q2 开始,
require(rJava)
在 中有效sudo R
,但在 中无效R
。echo $JAVA_HOME
在终端上运行的或 的输出与在 R 中使用或echo $LD_LIBRARY_PATH
运行的输出不同。system("echo $JAVA_HOME")
system("echo $LD_LIBRARY_PATH)
我应该安装哪种 Java?我安装了 JRE,但它不起作用。
require(rJava)
在终端 R 中有效,但在 RStudio 服务器中无效。
答案1
检查您的环境设置,我发现这
export JAVA_HOME=xxx
实际上不起作用。运行cat /etc/environment
并检查JAVA_HOME
变量是否设置为正确的路径。然后您必须复制并粘贴您想要的JAVA_HOME
路径,并将JAVA_HOME
in设置/etc/environment
为该路径。检查你的
$PATH
变量*your_java_home_path*/bin
中是否有你的 ld_library_path在其中。$LD_LIBRARY_PATH
就是其中有的那个libjvm.so
。 我不知道这个 .so 是干什么用的,但它给我带来了很多麻烦。请参阅https://stackoverflow.com/questions/25232624/r-package-rjava-only-loads-if-i-launch-r-with-sudo
对我没什么帮助,因为我遇到的是 Q2,而不是 Q3。但可能对你有帮助。
解决方案与Q2相同。
从 Oracle 网站安装http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
别跑apt-get install xxx
。你以为这样节省了你的时间,但实际上你得到了很多你并不想要的东西。
- 运行
sudo rstudio-server restart
。当您尚未重新配置 Java 时,它仍在运行旧的 rsession。
如果还是不起作用怎么办?
完全卸载你的 Java。按照这个帖子 http://docs.oracle.com/javase/8/docs/technotes/guides/install/install_overview.html
然后按照 A5 的说明重新安装。然后/etc/environment
按照 A1 和 A2 的说明设置路径。
答案2
如果你打算使用 Oracle 的 Jre 或 Jdk 而不是 Openjdk:清除所有与 Java 相关的东西,然后通过以下方式重新安装苯甲酸从http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html。
这样,你将以与常规 Ubuntu 更新完全相同的方式接收所有(安全)更新,使用apt-get / aptitude 更新。