Pau*_*est 2 java macos arm x86-64 apple-m1
因为在带有 M1、M2 ...(Apple Silicon)的 Apple 上,可以安装适用于arm(又名arm64)或Intel CPU(又名amd64)的JDK,并且它会正常工作,有问题要告诉(给同事)在其他Mac上)如何检查
如何检查mac上安装的JDK是针对arm64还是amd64?
System.getProperty("os.arch"))例如mvn -v过去足以讲述所有细节。
mvn -v
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: /opt/homebrew/Cellar/maven/3.9.1/libexec
Java version: 17.0.6, vendor: Amazon.com Inc., runtime: /Users/user/Library/Java/JavaVirtualMachines/corretto-17.0.6-1/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "13.4", arch: "aarch64", family: "mac"
Run Code Online (Sandbox Code Playgroud)
JDK java/javac 也不提供线索。
javac -version
javac 17.0.6
java -version
openjdk version "17.0.6" 2023-01-17 LTS
OpenJDK Runtime Environment Corretto-17.0.6.10.1 (build 17.0.6+10-LTS)
OpenJDK 64-Bit Server VM Corretto-17.0.6.10.1 (build 17.0.6+10-LTS, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
我们还通过脚本安装了JDK,JDK安装在docker容器中。应该有一些通用的检查方法。
如果您只需要手动检查,则可以使用该file实用程序,对于可执行文件,该实用程序应该告诉您二进制文件是针对什么架构构建的。
因此,假设您想了解javac您可以运行的路径上的内容
file $(which javac)
Run Code Online (Sandbox Code Playgroud)
或者,更一般地说
file /path/to/your/binary
Run Code Online (Sandbox Code Playgroud)
并读取其输出。
一个例子:
$ file $JAVA_HOME/bin/javac
/Users/user/Library/Java/JavaVirtualMachines/corretto-1.8.0_362/Contents/Home/bin/javac:Mach-O 64 位可执行文件 x86_64
$ file $JAVA_OTHER_HOME/bin/javac
/Users/user/Library/Java/JavaVirtualMachines/corretto-1.8.0_362-1/Contents/Home/bin/javac:Mach-O 64 位可执行文件 arm64
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |