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
相關文章
相關標籤/搜索