3

我想从我的 Compose 桌面应用程序中创建一个小的二进制文件。以下是 Compose 开箱即用的选项:

  1. 使用 java 运行时创建原生包(很棒,但体积很大)
  2. 创建一个 Uber(胖)Jar(但它需要 Java 11 才能运行,因为 Compose 库不支持旧版本)

我相信可以使用 GraalVM 将 Uber Jar 转换为本地二进制文件。我也尝试运行 native-image 命令,但它创建了一个 exe,然后运行 ​​Jar,这又回到了同样的问题;必须在机器上安装 Java 11。我错过了什么?

4

1 回答 1

2

Compose for desktop 在后台使用 Swing,因此它与 GraalVM 的本机映像工具尚不完全兼容。

GraalVM 的最新版本在 Linux 上引入了对 Swing 的实验性支持,但它仍在开发中。大概一旦 Swing 支持稳定,Compose 应该可以使用原生图像。

您的示例中发生的情况是 native-image 无法创建本机可执行文件,而是创建了一个使用常规 JVM 运行时的后备图像。

于 2021-07-12T14:19:07.260 回答