gpt4 book ai didi

java - 如何检查 JDK 是为什么架构构建的?/在 mac 上安装的 JDK 是针对arm(又名arm64)还是针对Intel CPU(又名amd64)?

转载 作者:行者123 更新时间:2023-12-03 07:53:44 34 4
gpt4 key购买 nike

因为在带有 M1、M2 ...(Apple Silicon)的 Apple 上,可以安装适用于arm(又名arm64)或Intel CPU(又名amd64)的JDK,并且它会正常工作,有问题要告诉(对其他 Mac 上的同事)如何检查

如何检查Mac上安装的JDK是适用于arm64还是amd64?

  1. 从命令行?
  2. 来自 Java 程序? (不是操作系统架构 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"

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)

我们还通过脚本安装了JDK,JDK安装在docker容器中。应该有一些通用的方法来检查。

最佳答案

如果您只需要手动检查,则可以使用 file 实用程序,对于可执行文件,该实用程序应该告诉您二进制文件是针对什么架构构建的。

因此,假设您想了解可以运行的路径上的 javac

file $(which javac)

或者,更一般地说

file /path/to/your/binary

并读取其输出。

一个例子:

$ 文件 $JAVA_HOME/bin/javac

/Users/user/Library/Java/JavaVirtualMachines/corretto-1.8.0_362/Contents/Home/bin/javac: Mach-O 64-bit executable x86_64

$ 文件 $JAVA_OTHER_HOME/bin/javac

/Users/user/Library/Java/JavaVirtualMachines/corretto-1.8.0_362-1/Contents/Home/bin/javac: Mach-O 64-bit executable arm64

关于java - 如何检查 JDK 是为什么架构构建的?/在 mac 上安装的 JDK 是针对arm(又名arm64)还是针对Intel CPU(又名amd64)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76533631/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com