今天打算在 mac os 上安装一下 idea,但安装完 idea 后,发现无法启动 idea,点击 idea 的图标,只是图标跳了一下然后就没有反应了。
后来在访达中查看 IDEA 的包内容,进入到 Contents\MacOS,打开里面的 idea,看到如下日志:
Last login: Thu Dec 2 21:16:32 on ttys000
ahs@ahsdeMacBook-Pro ~ % /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea ; exit;
2021-12-02 21:22:54.967 idea[878:21597] allVms required 1.8*,1.8+
2021-12-02 21:22:54.968 idea[878:21602] Cannot load JVM bundle: Error Domain=NSCocoaErrorDomain Code=3585 "dlopen_preflight(/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib): no suitable image found. Did find:
/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib: mach-o, but wrong architecture
/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib: mach-o, but wrong architecture" UserInfo={NSLocalizedFailureReason=The bundle doesn’t contain a version for the current architecture., NSLocalizedRecoverySuggestion=Try installing a universal version of the bundle., NSFilePath=/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib, NSDebugDescription=dlopen_preflight(/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib): no suitable image found. Did find:
/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib: mach-o, but wrong architecture
/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib: mach-o, but wrong architecture, NSBundlePath=/Applications/IntelliJ IDEA.app/Contents/jbr, NSLocalizedDescription=The bundle “OpenJDK 11.0.12” couldn’t be loaded because it doesn’t contain a version for the current architecture.}
2021-12-02 21:22:54.968 idea[878:21602] Retrying as x86_64...
arch: posix_spawnp: /Applications/IntelliJ IDEA.app/Contents/MacOS/idea: Bad CPU type in executable
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[进程已完成]
一句句地看一下:
Last login: Thu Dec 2 21:16:32 on ttys000
这一行日志显示的是上一次登录的时间:12月2日21点16分32秒,在 ttys000上。ttys000
可能是这台电脑的账户,我目前不是很清楚。
ahs@ahsdeMacBook-Pro ~ % /Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea ; exit;
ahs@ahsdeMacBook-Pro
:ahs 是目前登录的电脑账户。
/Applications/IntelliJ\ IDEA.app/Contents/MacOS/idea
是刚才我们打开的 idea 文件的路径。
之后的 exit;
我不知道是什么意思。
2021-12-02 21:22:54.967 idea[878:21597] allVms required 1.8*,1.8+
对于这一行日志,前面的 2021-12-02 21:22:54.967
很明显,是时间。idea[878:21597]
是什么意思呢? allVms required 1.8*,1.8+
又是什么意思呢?virtual machine?
2021-12-02 21:22:54.968 idea[878:21602] Cannot load JVM bundle: Error Domain=NSCocoaErrorDomain Code=3585 "dlopen_preflight(/Applications/IntelliJ IDEA.app/Contents/jbr/Contents/MacOS/libjli.dylib): no suitable image found. Did find:
这一行日志开始就是错误信息了。
后面的日志我大概地读了一下,说什么 wrong architecture,是架构出错了。难道是 idea 的平台没选对?
于是回到 idea 官网,看到 idea 的 mac os 版本还分两种 dmg。一种是 Intel 的,一种是 Apple Silicon 的,不知道二者有什么区别。之前安装的是 .dmg(Intel)
的。
下载好了…
果然,是因为 dmg 的版本错了,我这台 mac os 应该下载 Apple Silicon 版本的。
那么问题来了,首先,.dmg 文件格式是什么?(没错,我刚开始用 mac 系统)
其次,idea 的 mac os 版本的 .dmg 的 Intel 版本和 Apple Silicon 的区别是什么?
对于第一个问题:.dmg 文件格式是什么?
.dmg 在 MAC 系统上的一个压缩镜像文件,相当于在 Windows 上常见的 iso 文件。dmg 在苹果机上可以直接运行加载,在 Windows PC 上可以通过命令行软件 dmg2iso.exe 转换成 ISO 文件。关于 dmg 文件格式的更多信息,见这篇博客(建议熟读):dmg是什么文件格式_什么是DMG文件(以及我该如何使用)?
对于第二个问题:idea 的 mac os 版本的 .dmg 的 Intel 版本和 Apple Silicon 的区别是什么?
对于 mac,以前官方采用的芯片是 intel 的,现在自家研发了 m1 芯片,也就是 Apple 硅(Silicon)芯片,所以有些 mac 机型其实是采用了 m1 芯片的,像我手头的这台就是。所以,应该下载 Apple Silicon 版本的 .dmg 文件。具体二者的区别可以见这篇博客:如何确定您的 Mac 是使用 Intel 还是 Apple Silicon。