似乎没有关于此的文档。在 jlink 中,您可以指定图像是大端还是小端。如果您不指定任何内容,则使用本机字节顺序。
我可以构建一个图像并且不指定字节序,或者只指定小字节序并且它运行(我在基于 i7 的机器上),如果我指定大字节序,则在初始化过程中会出现错误,因为找不到对象。因此,它似乎无法检测到不匹配并反转字节序。
查看 jlink 的底层,在 jimage ImageStream 中它分配 ByteBuffers 以写出图像。这些是特定于字节序的。
传入的字节序是您指定的字节序,默认为 ByteOrder.nativeOrder(),它是底层硬件的字节序。
因此,在我看来,jlink 打破了编译一次,随处运行的想法,因为链接在小端平台上的 jlink 图像在大端平台和 v/v 上不起作用。
谁能确认我的分析是正确的,因为我没有方便的大端平台来进行健全性检查。
谢谢,