MacOS安装rJava

rJava出了名的难装,一大堆问题。java

核心的问题:xcode

1. java版本问题,最好用1.8版本的javabash

2. 编译器的问题app

3. 相关头文件header的问题ui

 

以前几回装过,但都放弃了,此次花了一下午终于搞定了。code

 

对于MacOS,首先就是要配置好Java的环境,brew装java1.8orm

brew cask install java8 已经失效,没法安装。blog

参见这里,能够装另外一个版本。get

brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

 

而后须要管理java的环境编译器

brew install jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile

jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/
jenv global openjdk64-1.8.0.222

 

而后就是配置R的java环境,这一步必需要成功,不然后面没法进行

R CMD javareconf

大坑:java不是1.8或者java版本太老不对,这一步都会报错,总之就是用brew不断去试不一样版本的java,直到成功。

 

最后就是装rJava了

CC="/usr/local/opt/llvm/bin/clang -fopenmp" R --quiet -e 'install.packages("rJava", type="source", repos="http://cran.us.r-project.org")'

大坑:CC就是指定编译器,由于R会莫名其妙的用最老的clang来编译,那确定会报错,其次后面的参数也必须添加。主要是这两个坑,后面源码安装。

 

最后的最后,若是在rstudio或jupyter里用rJava,还须要指定一下Java的位置,以便找到动态连接文件:

Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home') 

 

总结:java必定要装对,最好配一个java多版本的管理软件,其次须要先配置R的java环境,最后就是用合适的编译器来源码安装。(作错任意一步都会致使rJava安装报错)

 

这个原本就是个版本混乱、多语言互斥的问题:

Java牛逼,致使大部分其余语言想调用它的功能;

Java永远在不断更新,其余调用它的包的代码也必须持续更新,因此良好的向下兼容是必须的;

 

关于编译器和头文件:

须要安装最新版的xcode,而后创建header文件的软连接

/usr/local/opt/llvm/include
/Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
相关文章
相关标签/搜索