• MacOS安装rJava


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

    核心的问题:

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

    2. 编译器的问题

    3. 相关头文件header的问题

    之前几次装过,但都放弃了,这次花了一下午终于搞定了。

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

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

    参见这里,可以装另一个版本。

    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
    

      

  • 相关阅读:
    Blob
    MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法 (转)
    事务--存储过程
    JDBC-Mysql-编译预处理(占位符)
    socket
    GUI---深度复制
    串行化--深度复制
    RESTful理解
    django中文和时区的配置
    redis-server报错
  • 原文地址:https://www.cnblogs.com/leezx/p/11716665.html
Copyright © 2020-2023  润新知