在macOS Mavericks 10.9.5上安装xlsx和rJava

时间:2014-11-05 10:34:50

标签: java r macos rjava

在我的Mac上安装rjava真是个噩梦。

我的设置:

MacOS 10.9.5
Java: 7u71 (64 bits dowloaded from Oracle site)
R: R version 3.1.1 (2014-07-10)

首先,在命令行中我运行了

sudo R CMD javareconf

然后,我跑进了R:

install.packages('rJava')

编译结束时的错误是:

JavaVM -F/opt/local/Library/Frameworks/R.framework/.. -framework R -llzma -lm -liconv -licuuc -licui18n
ld: library not found for -licuuc
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libjri.jnilib] Error 1
make[1]: *** [src/JRI.jar] Error 2
make: *** [jri] Error 2
ERROR: compilation failed for package ‘rJava’
* removing ‘/Users/costa/Library/R/3.1/library/rJava’

我尝试了Java 8和Mac默认java并且也遇到了同样的错误。

Ideias?

6 个答案:

答案 0 :(得分:4)

我做了什么(使用macports R)作为root(sudo bash):

  • 编辑 /opt/local/Library/Frameworks/R.framework/Resources/etc/Makeconf 并改变行

    LIBS =  -llzma -lm -liconv -licuuc -licui18n
    

    LIBS =  -llzma -lm -liconv
    
  • 安装原始的1.6 Mac Java

  • 出口 JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

  • 运行R CMD javareconf

现在你可以启动R并执行install.packages("rJava")。使用1.6版本的Java确保RStudio也可以加载rJava包。

如果您不打算使用RStudio,也可以使用Java 1.8

答案 1 :(得分:1)

我的计算机出现了同样的错误(Mac OS 10.9.5,Java 1.8.0_11,R 3.1.1)。从Oracle(1.8.0_25)安装最新的Java JDK并没有解决问题。但是,在更新Java之后,安装R 3.1.2解决了我的问题。运行install.packages("rJava")后,可以运行:

> library("rJava")
> .jinit() # this starts the JVM
> s <- .jnew("java/lang/String", "Hello World!")
> .jcall(s,"I","length")
[1] 12

请注意,更新 JDK 与GUI Java控制面板中的Java版本不同,可通过“系统”首选项访问。后者只是互联网浏览器插件的 JRE

答案 2 :(得分:1)

我实际上可以通过使用Mac二进制文件在我的Macbook上安装rJava(运行OSX Yosemite和R版本3.2.3)来完全避免编辑我的环境。首先,在R中执行以下操作以安装rJava:

install.packages("rJava", type = "mac.binary")

可能与此无关,出于某种原因,在我第一次安装xlsxjars依赖项之前,我无法安装xlsx。所以在R中执行以下操作:

install.packages(c("xlsxjars", "xlsx"))

使用这两个命令,xlsx似乎在Mac上安装得很好!

答案 3 :(得分:1)

这对我有用:

processIdent

然后,在R解释器中:

override protected def processIdent(name: String) = {
  val upperCased = name.toUpperCase
  if (reserved contains upperCased) Keyword(upperCased) else Identifier(upperCased)
}

答案 4 :(得分:0)

我有同样的问题。我正在使用OS X Yosemite并且最初通过自制软件安装了R

我执行了以下步骤来修复它:

  1. 关闭所有R
  2. 的实例
  3. 在我的终端shell中,运行sudo R CMD javareconf
  4. 从我的终端打开R并运行:

    install_packages("rJava")

    install_packages("xlsx")

答案 5 :(得分:0)

使用旧的Java SE 6我可以通过运行javareconf来编译rJava,如下所示:

JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home \
JAVA_CPPFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/ \
r CMD javareconf