ドキュメントは wiki で見つけることができます。
JTransc (Java Trans Compiler) は、ジッターや外部ランタイムを必要とせずに、.class および .jar ファイルをターゲット プログラミング言語/実行可能ファイルにコンパイルし、必要なすべての依存関係を 1 つのファイルまたはフォルダーにバンドルする AOT (事前コンパイラー) です。 。
言語を他の言語に変換するためのテクノロジーはたくさんあります。たとえば、Java を JavaScript に変換します。または、KotlinJS すでに JavaScript をターゲットとする Kotlin バックエンド。では、なぜ JTransc を使用するのでしょうか?
理由の 1 つは、JTransc が混合プロジェクトを許可していることです。たとえば、Kotlin コードで Java ライブラリを使用できます。
JTransc を使用すると、複数のテクノロジを使用する代わりに、複数の言語とプラットフォームをターゲットにすることができます。
1 つのテクノロジーのみを使用することで、ターゲット間の一貫性が保証されます。たとえば、Kotlin JS は完全な Java リフレクションをサポートしていません。
C++ を生成して emscripten やその他のテクノロジを使用する代わりに、JTransc を使用すると、プラットフォームにネイティブなコードを生成できます。たとえば、JS をターゲットにする場合は、C++ および emscripten でエミュレートされた GC の代わりに、ネイティブ JS クラス最高の GC を使用します。また、JS を対象とする適切なヒープ サイズを事前に知る必要もありません。
String、StringBuilder、ArrayList などの一部のクラスは、ネイティブ JavaScript/AS3/Dart... 機能を使用する方法で実装されています。 JavaScript の文字列、配列などと同様です。
すべてを含む巨大なプロジェクトを生成したり、複雑な proguard 構成ファイルを用意したりする代わりに。 JTransc には、簡単な方法でツリーシェーキングが含まれています。アノテーションを使用して、メソッド、クラス、フィールド、または別のアノテーションを保持できます。すべてのターゲットに対して機能し、ワークフローに完全に統合されています。
JTransc は、JS のスレッドと同期 I/O を使用するプレーン Java アプリケーションをサポートし、await/async を使用してそれを JS の非同期バージョンに変換し、スレッド/同期 I/O を使用しないブランチを検出して最速のパフォーマンスを実現します。
JTransc に沿って、JTransc を使用できるようにするためのライブラリのセットを作成しています。
https://github.com/soywiz/korlibs
マルチプラットフォームに JTransc を使用する Kotlin ゲーム エンジン: https://github.com/soywiz/korge
JTransc+Haxe を使用した GDX バックエンドもあります: https://github.com/jtransc/gdx-backend-jtransc
JTransc
JTransc (Java Trans Compiler) は、ジッターや外部ランタイムを必要とせずに、.class および .jar ファイルをターゲット プログラミング言語/実行可能ファイルにコンパイルし、必要なすべての依存関係を 1 つのファイルまたはフォルダーにバンドルする AOT (事前コンパイラー) です。 。
最初は as3 と javascript を生成していましたが、現在は Javascript、Haxe、C++、D などのいくつかのターゲットがあります。Haxe 自体は、他のいくつかの言語 (JS、AS3、C++、C#、Java、PHP、Python) をターゲットにすることができます。これにより、デスクトップ、ブラウザ、モバイルなどのさまざまなプラットフォームでプログラムを実行できるようになります。
このプロジェクトの目的は、Kotlin (および他の JVM 言語) の高い生産性を移植性の高い Haxe プラットフォームにもたらすことです。ほとんどのコア Java API とプレーンな Java リフレクション API をすぐにサポートしています。
当初は JVM6、Kotlin、ゲームに重点を置いていますが、将来的には新しい jvm バージョンや、フロントエンドやバックエンド アプリケーションなどの他のユースケースのサポートが強化される予定です。
現在、JTransc は Java8 ラムダとデフォルト メソッドをサポートしています。
jtransc-rt-core というモジュールがあり、(JTransc を使用するかどうかに関係なく) 任意のプロジェクトに含めることができます。これは、JTransc を使用してコンパイルするときに JTransc 機能を使用するcom.jtransc
パッケージ、特定のアノテーション、高速メモリ アクセス、および非同期 API を提供します。
これらは、jtransc を使用したマルチメディア アプリケーションのいくつかのプロジェクトでもあります。
jtransc/jtransc-examples で例を見つけることができます。
# jtransc script can be found under the jtransc-main-run folder
javac com/test/Main.java -d target/classes
jtransc dependency.jar target/classes -main com.test.Main -out program.js
node program.js
これは、JTransc を使用する場合に推奨される方法です。 Maven Central から、または Gradle プラグイン リポジトリから直接含めることができます。
plugins {
id "com.jtransc" version "0.6.8"
}
これにより、アプリケーションを構築するためのいくつかのタスクが追加されます。 jtransc と呼ばれる gradle ブロックがあり、これを使用してビルド用のものを指定できます。
たとえば、 gradle runJs
build/jtransc-js/program.js
に JS ファイルを生成し、node.js を使用してそれを実行します。
使い方はドキュメントで確認できます。
Maven を使用することもできますが、JTransc の性質により、gradle の方が適しています。使い方はドキュメントで確認できます。
IntelliJ 内で実行およびデバッグできるようにするプラグインが開発中です。まだ準備ができていませんが。これは jtransc-intellij-plugin フォルダーにあります。
最終的には、その中間 AST を生成または消費できるようになります。そのため、他の人は JVM を使用せずにそれを生成でき、他の人はスタックベースの IR の複雑さをまったく排除して、その AST から他のターゲットを直接生成できます。
echo "export JAVA_HOME=$(/usr/libexec/java_home)" >> ~/.bash_profile
source ~/.bash_profile
haxelib install lime 5.5.0
haxelib install hxcpp 3.4.64
haxelib run lime setup
実行する######openfl/ライム#831
lime setup android
実行します。インストールしようとしてメモリ不足が発生した場合は、手動モードを選択してください。 Download and install the Android SDK? [y/n/a] ? n
Download and install the Android NDK? [y/n/a] ? n
Download and install the Java JDK? [y/n/a] ? n
Path to Android SDK [C:toolsandroid-sdk]:
Path to Android NDK []: C:toolsandroid-ndk
Path to Java JDK [C:Program FilesJavajdk1.8.0_131]:
lime rebuild hxcpp tvos
実行しますhaxelib remove lime
git clone --recursive https://github.com/openfl/lime
haxelib dev lime lime
haxelib install format
lime rebuild mac
lime rebuild ios
lime rebuild tvos
窓
PATH
環境変数の最初の行に「path/to/mingw/bin」を強く追加します。大規模プロジェクトの回避策: haxe 3.4.2 はメモリ不足で失敗することがあります。開発時の haxe ファイルを置き換えることもできますが、この方法は危険であり、安定したものしか得られません。github で履歴を参照してください。私の現在の選択: 2017-03-23 05:39:01 >> 4876859 >> haxe_2017-03-23_development_ada466c.tar.gz
ウィンドウズ64
neko run.n Build.xml -Dwindows -DHXCPP_M64 -Dstatic_link ./project/
haxelib remove lime
git clone --recursive https://github.com/openfl/lime -b master
haxelib dev lime lime
haxelib install format
完全にサポートされていない c99 標準で MSVC 2013 を使用する場合は、libopenal 内のすべての inline を __inline に、snprintf を _snprintf に置き換えます。
lime rebuild windows -64
マック
brew install automake libtool pkg-config
sudo npm install -g ios-deploy --unsafe-perm --allow-root