有一个相对较新的轻量级 JVM,称为Avian,可以为 iOS 目标生成可执行文件。
网站上没有太多文档(用 Google 搜索也找不到太多文档)。我想知道是否有人知道有关如何使用Avian在 iOS 上运行基本 Scala 程序的分步教程。
iOS 编译器的另一个替代 JVM 是RoboVM。尽管它处于早期阶段,但看起来很有希望,并提供了有关如何为 iOS 编译 Scala 的示例。
编辑这是一个旧答案,当时有效,但是,正如@JamesMoore 指出的那样,RoboVM 已不复存在。现在看起来很有希望,并且很可能在不久的将来在 iOS 中运行 Scala 代码的方式是Scala Native
我可能不再需要它了,现在Oracle 正在 iOS 和 Android 上开源 JavaFX!
编辑:Oracle 更新了这篇文章,宣布他们不会发布 JVM,所以看起来 JavaFX+Avian 可能是要走的路。
在 iOS(非 root)上运行 Java 字节码不仅仅是运行那个或那些 JVM。据我了解,iOS 内存管理不允许可执行内存页面在用户模式下可写。这基本上禁止任何 JIT 编译。因此,即使可以在特定的 Java VM 上运行一些已编译的(来自 Java 或 Scala)类,我也会仔细检查该 VM 如何支持 Ahead-Of-Time 编译,以便在 iOS 上运行。正如我所见,Avian AOT 在桌面上运行良好。对于 iOS,您必须自己检查它,尽管该项目在 AOT 领域看起来很有希望。