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

时间:2016-01-24 03:44:09

标签: java r rjava

我通过调用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/

5 个答案:

答案 0 :(得分:9)

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')

答案 1 :(得分:6)

此解决方案Cannot load R xlsx package on Mac OS 10.11

sudo R CMD javareconf

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

为我工作

答案 2 :(得分:1)

尝试在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)一直抱怨安装1.6 Legacy Java for OSX。

我从网站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版本,但至少我可以完成一些工作。希望有些人遇到更好的解决办法:)

答案 3 :(得分:0)

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

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

(2)在〜/ .bash_profile中设置以下环境变量:
export JAVA_HOME = $(/ usr / libexec / java_home)
导出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的其他库。

答案 4 :(得分:0)

这对我有帮助:

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/lib/libserver.dylib