前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么M1芯片的Mac电脑反而不能安装针对它的特殊定制化软件

为什么M1芯片的Mac电脑反而不能安装针对它的特殊定制化软件

作者头像
生信技能树
发布2022-12-16 14:24:52
1.2K0
发布2022-12-16 14:24:52
举报
文章被收录于专栏:生信技能树

比如需要安装 jdk,选择自己的版本,如果你的电脑是苹果操作系统,你会发现仍然是有两个选择:

代码语言:javascript
复制
https://download.oracle.com/java/19/latest/jdk-19_macos-aarch64_bin.dmg ( sha256)
https://download.oracle.com/java/19/latest/jdk-19_macos-x64_bin.dmg ( sha256)

因为苹果电脑最近全面抛弃了传统的x86的64位芯片架构,转向了M1芯片是Arm 64 ,就比较麻烦。如果你有的M1芯片的Mac电脑,你肯定是会选择jdk-19_macos-aarch64_bin.dmg ,因为 它可以顺利安装。如果你一定要下载jdk-19_macos-x64_bin.dmg ,理论上你的电脑也会拒绝安装。

拒绝安装

这个符合逻辑,毕竟电脑是Arm 64架构所以应该是安装针对它的特殊定制化软件,抛弃传统的x86的64位芯片架构。

问题就在于,单方面抛弃它你会在其它地方碰壁,比如如果你在r里面需要使用rjava包,就会报错:

代码语言:javascript
复制
> library(rJava)
错误: package or namespace load failed for ‘rJava’:
 loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
  调用: dyn.load(jvm, FALSE)
  错误: 无法载入共享目标对象‘/Library/Java/JavaVirtualMachines/jdk-19.jdk/Contents/Home/lib/server/libjvm.dylib’::
  dlopen(/Library/Java/JavaVirtualMachines/jdk-19.jdk/Contents/Home/lib/server/libjvm.dylib, 0x000A): 
  
  (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

很明显,这个r里面需要使用rjava包,但是它依赖于传统的x86的64位芯片架构的java,并不需要特殊定制化软件的java,但是你电脑拒绝安装传统的。看起来陷入了死局。

有意思的虽然我们的没办法安装比较新的java,但是可以安装比较旧的传统的x86的64位芯片架构的java

可以看到2019 ,而且这个时候M1芯片的Mac电脑还没有面世,所以压根就没得选,就只能说安装传统的x86的64位芯片架构的java:

传统的x86的64位芯片架构的java

果不其然,有了这个传统的x86的64位芯片架构的java,马上在r里面需要使用rjava包就没有问题了。总之就是各种折腾,我的电脑里面的jav都有了三个了:

代码语言:javascript
复制
 ls -lh /Library/Java/JavaVirtualMachines
total 0
drwxr-xr-x  3 root  wheel    96B 11  2 20:38 jdk-17.0.5.jdk
drwxr-xr-x  3 root  wheel    96B 10 31 22:15 jdk-19.jdk
drwxr-xr-x  3 root  wheel    96B 11  3 18:24 jdk1.8.0_351.jdk

r里面需要使用rjava包需要设置JAVA_HOME,代码如下所示:

代码语言:javascript
复制
h = '/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home'
Sys.setenv(JAVA_HOME=h)
list.files(Sys.getenv("JAVA_HOME"))

写在文末

我在《生信技能树》,《生信菜鸟团》,《单细胞天地》的大量推文教程里面共享的代码都是复制粘贴即可使用的, 有任何疑问欢迎留言讨论,也可以发邮件给我,详细描述你遇到的困难的前因后果给我,我的邮箱地址是 jmzeng1314@163.com

如果你确实觉得我的教程对你的科研课题有帮助,让你茅塞顿开,或者说你的课题大量使用我的技能,烦请日后在发表自己的成果的时候,加上一个简短的致谢,如下所示:

We thank Dr.Jianming Zeng(University of Macau), and all the members of his bioinformatics team, biotrainee, for generously sharing their experience and codes.

十年后我环游世界各地的高校以及科研院所(当然包括中国大陆)的时候,如果有这样的情谊,我会优先见你。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在文末
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档