Quarkus 应用程序的 GraalVM 本机映像在 ARMv732 位设备 (IoT) 上运行

问题描述

是否可以在 ARMv7(32 位)设备上运行 Quarkus 框架应用程序的 GraalVM 本机映像?我知道 GraalVM 不支持 32 位环境,但我想知道是否有某种方法可以在这样的环境上使用编译的 GraalVM 本机映像运行二进制文件。有什么方法可以配置 LLVM,GraalVM 使用它来实现这一目标吗?我们准备的物联网设备必须有一些带有简单仪表板的 Web 应用程序(本地访问)。由于设备存储空间太小,无法安装任何 Java JDK >= 8,我想知道 GraalVM native-image 是否可以完成这项工作。

解决方法

您似乎无法在 32 位机器上编译/运行 GraalVM native-image。如果您想为规格有限的本地物联网设备开发简单的网络应用程序,您有两种选择:

  1. 使用 jlink 创建自定义 JDK 映像(自 JDK 9 起可用)。您可以将 JDK9 大小缩小到 50MB。请记住,JDK 9 没有 ARMv7(32 位)版本(我还没有找到),但当然,您可以使用 JDK 11 为 ARM 32 位架构做同样的事情。
  2. 使用一些轻量级 Web 框架(如 Gin)在 Golang 中编写程序。嵌入在已编译二进制文件中的 GC 收集器仅占用约 1.9MB(他们不断尝试使其更小)。 Golang 是一种很棒的语言,而且速度很快。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...