问题描述
我遇到了麻烦,因为我需要在装有 32 位 Windows 的计算机上安装 Java 16 应用程序。当我为 64 位 Windows 使用 jlink 制作 JRE 时,我没有问题。有没有什么参数可以放在 jlink 命令中来指定操作系统的架构?
解决方法
确实,大多数Java 供应商(包括 Oracle)在 Java 8 之后不再支持在 32 位平台上支持 Java。
但是,在撰写此答案时,Azul 确实支持 32 位 Windows 和 32 位 Linux 上的 Java。一直到 Java 16(最新版本)。
因此,切换到 Azul Java 16 将是一种选择。至少,值得一试。 (YMMV 等)
参考:
- Azul OpenJDK downloads page。
另一个选项是 AdoptOpenJDK,尽管他们没有 32 位 Linux 产品。
是否可以在 jlink 命令中放入任何参数来指定操作系统的架构?
我不这么认为。根据 Is it possible to use jlink for cross compilation (bundling) application for different operating systems? 上的评论,您需要为目标平台安装 JDK,并使用该 JDK 中的 jlink
生成您的自定义 JRE。
我对 jlink
手册页的阅读证实了这一点。
好吧,现在我有了答案,从 java 8 开始,java 不再支持 32 位 Windows。所以如果你需要做一个 java 9 或更高的应用程序来在 32 位操作系统上运行,你会不能。