60

有一个相对较新的轻量级 JVM,称为Avian,可以为 iOS 目标生成可执行文件。

网站上没有太多文档(用 Google 搜索也找不到太多文档)。我想知道是否有人知道有关如何使用Avian在 iOS 上运行基本 Scala 程序的分步教程。

4

4 回答 4

7

iOS 编译器的另一个替代 JVM 是RoboVM。尽管它处于早期阶段,但看起来很有希望,并提供了有关如何为 iOS 编译 Scala 的示例。

编辑这是一个旧答案,当时有效,但是,正如@JamesMoore 指出的那样,RoboVM 已不复存在。现在看起来很有希望,并且很可能在不久的将来在 iOS 中运行 Scala 代码的方式是Scala Native

于 2013-07-30T02:04:16.730 回答
4

编译的 Scala 源代码是完全标准的类文件。您应该能够按照网站上的说明(查找“嵌入”)而无需进行大的更改,只需将scala-library.jar其视为您的代码的依赖项。

几天前,我设法引导了完整的编译器和在 Avian 上运行的标准库。

某些部分的边缘可能仍然有些粗糙,例如,有一个强制修复将成为 Scala 下一版本 (2.10.1) 的一部分,但不在 2.10.0 中。如果您想立即使用它,则需要使用每晚构建,直到 2.10.1 发布。

如果您遇到任何其他问题,请报告!

于 2013-02-04T22:15:33.000 回答
3

我可能不再需要它了,现在Oracle 正在 iOS 和 Android 上开源 JavaFX

编辑:Oracle 更新了这篇文章,宣布他们不会发布 JVM,所以看起来 JavaFX+Avian 可能是要走的路。

于 2013-02-11T22:54:22.727 回答
2

在 iOS(非 root)上运行 Java 字节码不仅仅是运行那个或那些 JVM。据我了解,iOS 内存管理不允许可执行内存页面在用户模式下可写。这基本上禁止任何 JIT 编译。因此,即使可以在特定的 Java VM 上运行一些已编译的(来自 Java 或 Scala)类,我也会仔细检查该 VM 如何支持 Ahead-Of-Time 编译,以便在 iOS 上运行。正如我所见,Avian AOT 在桌面上运行良好。对于 iOS,您必须自己检查它,尽管该项目在 AOT 领域看起来很有希望。

于 2013-04-16T16:34:01.483 回答