MacOS安装rJava

 

2023年02月20日

conda装好后还是有问题,找不到libjvm.so,在bashrc里指定不起作用,最后只能去Renviron【R最重要的配置文件】里指定,然后就成功了。

需要修改vi ~/.Renviron

1
LD_LIBRARY_PATH=/home/zz950/softwares/miniconda3/jre/lib/amd64/server

 

如果还不顶用,那就去conda env的R lib里建一个软连接。

1
cd /home/zz950/softwares/miniconda3/envs/r4p3/lib

 

配置文件
R每次启动的时候都会读取两个文件:

.Renviron:主要作用是设置环境变量,告诉R在哪里寻找外部程序,可以自定义用户信息

.Rprofile:每次R启动的时候会运行里面的代码,所以如果里面设置的很多代码,R启动就会变慢

R启动的时候最开始读取.Renviron文件,接着读取.Rprofile文件

 

2022年10月03日

conda YYDS

1
conda install -c r r-rjava

 

起因:一般没事不会装rJava,这里需要用到R包xlsx,所以才需要rJava。

 

还需要设置lib的path,确保能找到libjvm.so

1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/zz950/softwares/miniconda3/jre/lib/amd64:/home/zz950/softwares/miniconda3/jre/lib/amd64/server

  

R安装xlsx太慢,那就直接用conda装。

1
conda install -c r r-xlsx

  

 


 

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

核心的问题:

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

2. 编译器的问题

3. 相关头文件header的问题

 

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

 

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

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

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

1
2
brew tap adoptopenjdk/openjdk
brew cask install adoptopenjdk8

 

然后需要管理java的环境

1
2
3
4
5
6
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环境,这一步必须要成功,否则后面无法进行

1
R CMD javareconf

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

 

最后就是装rJava了

1
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的位置,以便找到动态链接文件:

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

 

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

 

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

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

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

 

关于编译器和头文件:

需要安装最新版的xcode,然后建立header文件的软链接

1
2
/usr/local/opt/llvm/include
/Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

  

posted @   Life·Intelligence  阅读(802)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
TOP
点击右上角即可分享
微信分享提示