R/RStudio、Yosemite 和 Java

R/RStudio, Yosemite, and Java

我昨天升级到OSX Yosemite。当我在 RStudio 中 运行 library(xlsx) 时,程序崩溃并且我收到消息: "To open 'RStudio' you need to install the legacy Java SE 6 runtime." 当我 运行 library(xlsx)R.

这是我的详细信息:

Mac Yosemite, Version 10.10.2
R version 3.1.2 (2014-10-31) 
Platform: x86_64-apple-darwin13.4.0 (64-bit)

我有 Java 版本 8 更新 31。我 运行 java -version 收到这条消息:"No Java runtime present, requesting install." 所以我安装了 Java SE Development Kit 8u31。现在:

java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

这没有成功,因为 运行ning library(xlsx) 仍然会使程序崩溃并发出警告。我是否需要以某种方式回滚到 Java SE 6 运行 时间,或者有没有办法使用我安装的最新版本?

This SO post seems to be related, but I am not clear about the propsoed solution to install Java 6. The answer links to an apple support page 这似乎已经过时了。

我不熟悉 Java,所以我可以使用一些建议。

而不是java你已经安装下载这个

https://support.apple.com/kb/DL1572?viewlocale=en_US&locale=en_US

安装后,你的问题就解决了

这对我有用:在 ~/.profile 中设置两个环境变量

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/server

我可以这样在 Rstudio 中安装 rJava 和 xlsx 包。不过,不可否认,花了好几个小时(漫不经心地)修补才让它恰到好处。

我能够用 Java 8 加载 rJava。看起来这是 RStudio 没有将某些环境变量从 Yosemite 传递到它的 rsession 中的问题。希望他们能尽快修复它,但与此同时,您可以在终端中自己传递环境变量。 运行 这个:

$LD_LIBRARY_PATH=$(/usr/libexec/java_home)/jre/lib/server: open -a RStudio

基本上你在这里做的是 运行 java_home 可执行文件,returns 你的 Java 路径,然后附加 jre/lib/server 目录.这被分配给 LD_LIBRARY_PATH,这是 RStudio 正确需要的。