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

2023-10-13 15:54:49 +08:00
 Goalonez
目前有一个场景因为网络问题.是本地 M1 pro(zulu jdk)打包出 Jar 包,然后通过本地 DockerFile(openjdk)创建出 Docker 镜像,通过 save 持久化镜像之后丢到服务器(x86)上去加载出来,然后运行 docker 镜像.

这种情况下,项目会因为架构问题出现什么异常吗?
567 次点击
所在节点    问与答
6 条回复
Dachunlv
2023-10-13 15:58:01 +08:00
会有问题,JDK 和 Docker 本身就有 arm 和 x86 两种版本的适配软件,打包出来的文件也只能在对应架构的系统上运行
liprais
2023-10-13 15:59:33 +08:00
jar 包没问题,我这么跑了快三年了
你的 docker 镜像记得 arch 设置成 x86
oneisall8955
2023-10-13 15:59:45 +08:00
dockerfile 指定 x86 jdk 的镜像就行了
liprais
2023-10-13 16:00:21 +08:00
@liprais 不过如果你的 jar 里面带的有 native code 也是不行的,比如 protobuf...
wpyfawkes
2023-10-13 16:01:49 +08:00
Jar 包里如果是纯 Java 代码就没问题
julyclyde
2023-10-14 12:51:54 +08:00
@Dachunlv compile once 这句话你没听说过?
虽然是 debug everywhere 吧,但毕竟不是 cross compile everywhere

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/981729

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX