iOS ターゲット用の実行可能ファイルを生成できるAvianと呼ばれる比較的新しい軽量 JVM があります。
Web サイトにはドキュメントがあまりありません (Google で検索してもあまり見つかりません)。Avianを使用して、基本的な Scala プログラムを iOS で実行する方法についてのステップバイステップのチュートリアルを誰かが知っているかどうか疑問に思っていました。
もう 1 つの JVM から iOS への代替コンパイラはRoboVMです。初期段階ではありますが、Scala を iOS 用にコンパイルする方法の例が示されているため、非常に有望に見えます。
EDITこれは当時有効な古い答えでしたが、@ JamesMooreが指摘しているように、RoboVMはもうありません。現在非常に有望であり、近い将来 iOS で Scala コードを実行する方法になる可能性があるのは、Scala Nativeです。
コンパイルされた Scala ソースは、完全に標準のクラス ファイルです。コードの依存関係として扱うだけで、大きな変更を加えることなく、Web サイトの指示(「埋め込み」を探してください)に従うことができるはずです。scala-library.jar
数日前に、Avian で実行される完全なコンパイラと標準ライブラリをブートストラップすることができました。
一部の部分はまだ端が少し粗いかもしれません。たとえば、Scala の次のリリース (2.10.1) の一部になる必須の修正が 1 つありますが、2.10.0 には含まれていません。今すぐプレイしたい場合は、2.10.1 がリリースされるまでナイトリー ビルドを使用する必要があります。
追加の問題が発生した場合は、報告してください。
オラクルが iOS と Android で JavaFX をオープンソース化するようになったので、もう必要ないかもしれません。
編集: Oracle は記事を更新して、JVM をリリースしないことを発表したため、JavaFX + Avian が進むべき道のようです。
iOS (root 化されていない) で Java バイト コードを実行することは、それまたはそれらの JVM を実行するだけではありません。私が理解している限り、iOS のメモリ管理では、実行可能なメモリ ページをユーザー モードで書き込み可能にすることはできません。それは基本的にJITコンパイルを禁止します。そのため、特定の Java VM で (Java または Scala から) コンパイルされたクラスを実行できる場合でも、iOS で実行できるようにするために、この VM が Ahead-Of-Time コンパイルをどのようにサポートしているかを注意深く確認します。私が見てきたように、Avian AOT はデスクトップ上でうまく機能します。iOS の場合、プロジェクトは AOT 領域で有望に見えますが、自分で確認する必要があります。