如何在OSX上配置rJava以选择正确的JVM – .jinit()失败

我通过调用install.packages(“rJava”)来安装rJava – 没有遇到任何问题

但是当我打电话时:

library(rJava) .jinit() 

我明白了:

 JavaVM: requested Java version ((null)) not available. Using Java at "" instead. JavaVM: Failed to load JVM: /bundle/Libraries/libserver.dylib JavaVM FATAL: Failed to load the jvm library. Error in .jinit() : JNI_GetCreatedJavaVMs returned -1 

我正在运行OSX:

 Darwin MBP-2 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64 

我安装了以下Sun JDK:

 $ ls /Library/Java/JavaVirtualMachines/ jdk1.7.0_79.jdk jdk1.8.0_65.jdk 

哪个Java在我的路径上:

 $ which java /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home//bin/Java 

我也将JavaHome定义为:

 $ echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/ 

https://stackoverflow.com/a/36045290/4351357上的答案在MacOS Sierra版本10.12上为我解决了这个问题。 特别是,它在下面的命令1中提供了代码。

我使用的三个终端命令是:

  1. sudo ln -s $(/usr/libexec/java_home)/jre/lib/server/libjvm.dylib /usr/local/lib
  2. sudo R CMD javareconf
  3. install.packages("rJava",type='source')

此解决方案无法在Mac OS 10.11上加载R xlsx软件包

 sudo R CMD javareconf install.packages("rJava",type='source') 

为我工作

尝试在OSX 10.11.5(El Capitan)上运行此测试时http://www.r-bloggers.com/connecting-r-to-an-oracle-database-with-rjdbc/

我一直得到同样的错误。 我试图按照Tim Child的建议进行安装。 我注意到的是我的R Studio版本(版本0.99.896)一直在抱怨为OSX安装1.6 Legacy Java。

我从网站https://support.apple.com/kb/DL1572?locale=en_US安装了旧版Java

然后在R Studio中运行一个更简单的测试。

 library(rJava) .jinit() print(.jcall("java/lang/System", "S", "getProperty", "java.version")) 

我的结果:

  > library(rJava) > .jinit() > print(.jcall("java/lang/System", "S", "getProperty", "java.version")) [1] "1.6.0_65" 

很高兴看到我运行了我的另一个测试(然后是那个让我沿着这条路走下去的测试)。 我仍然无法设置最新的Java版本。

我又重新安装了rJava包

 install.packages("rJava",type='source') 

并且工作正常,现在使用Java 1.6版本,但至少我可以完成一些工作。 希望有些人遇到更好的修复:)

我在这个问题上挣扎了几个小时。 这里有一个关于rJava背景的非常好的主题: https ://groups.google.com/forum/#!topic / r-sig-make / eFSDrjphgGs

以下步骤最终为我工作:
(1)升级到最新的JDK

(2)在〜/ .bash_profile中设置以下环境变量:
export JAVA_HOME = $(/ usr / libexec / java_home)
export JAVA_CPPFLAGS = $(/ usr / libexec / java_home)/ include

(3)以root身份从源代码重新安装rJava:
sudo R CMD INSTALL rJava_0.9-8.tar.gz

(4)以root身份重新配置Java:
sudo R CMD javareconf

然后我可以正确安装依赖于rJava正确配置的其他库。