Goalonez
V2EX  ›  问与答

M1 pro 打包的 Jar 在 x86 的机器上跑会有问题吗

  •  
  •   Goalonez · Oct 13, 2023 · 1314 views
    This topic created in 1118 days ago, the information mentioned may be changed or developed.
    目前有一个场景因为网络问题.是本地 M1 pro(zulu jdk)打包出 Jar 包,然后通过本地 DockerFile(openjdk)创建出 Docker 镜像,通过 save 持久化镜像之后丢到服务器(x86)上去加载出来,然后运行 docker 镜像.

    这种情况下,项目会因为架构问题出现什么异常吗?
    6 replies  •  2023-10-14 12:51:54 +08:00
    Dachunlv
    Dachunlv
    Oct 13, 2023
    1
    会有问题,JDK 和 Docker 本身就有 arm 和 x86 两种版本的适配软件,打包出来的文件也只能在对应架构的系统上运行
    F281M6Dh8DXpD1g2
    F281M6Dh8DXpD1g2
    Oct 13, 2023
    2
    jar 包没问题,我这么跑了快三年了
    你的 docker 镜像记得 arch 设置成 x86
    itechify
    itechify
    Oct 13, 2023 via Android
    3
    dockerfile 指定 x86 jdk 的镜像就行了
    F281M6Dh8DXpD1g2
    F281M6Dh8DXpD1g2
    Oct 13, 2023
    4
    @liprais 不过如果你的 jar 里面带的有 native code 也是不行的,比如 protobuf...
    wpyfawkes
    wpyfawkes
    Oct 13, 2023
    5
    Jar 包里如果是纯 Java 代码就没问题
    julyclyde
    julyclyde
    Oct 14, 2023
    6
    @Dachunlv compile once 这句话你没听说过?
    虽然是 debug everywhere 吧,但毕竟不是 cross compile everywhere
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    ♥ Do have faith in what you're doing.