有没有办法使用 GraalVM 从 Jetpack Compose 桌面应用程序创建本机二进制文件?

vik*_*1st 7 windows graalvm graalvm-native-image jetbrains-compose

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

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

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

小智 1

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

GraalVM 的最新版本引入了对 Linux 上的 Swing 的实验性支持,但它仍在开发中。据推测,一旦 Swing 支持稳定,Compose 就应该可以使用本机映像。

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