Anda dapat menemukan dokumentasi di wiki.
JTransc (Java Trans Compiler) adalah AOT (ahead of time compiler) yang mengkompilasi file .class dan .jar ke dalam bahasa pemrograman target / dapat dieksekusi yang menggabungkan semua dependensi yang diperlukan dalam satu file atau folder, tanpa memerlukan jitter atau runtime eksternal .
Ada banyak teknologi untuk mengubah bahasa ke bahasa lain. Misalnya saja mengubah Java menjadi JavaScript. Atau backend KotlinJS Kotlin yang sudah menargetkan JavaScript. Jadi mengapa menggunakan JTransc?
Salah satu alasannya adalah JTransc mengizinkan proyek campuran. Anda dapat menggunakan perpustakaan Java dengan kode Kotlin misalnya.
Daripada menggunakan beberapa teknologi, JTransc memungkinkan Anda menargetkan beberapa bahasa dan platform.
Menggunakan hanya satu teknologi menjamin konsistensi antar target. Misalnya, Kotlin JS tidak mendukung refleksi Java sepenuhnya.
Daripada membuat C++ dan kemudian menggunakan emscripten atau teknologi lainnya, JTransc memungkinkan Anda membuat kode asli platform Anda. Misalnya: saat menargetkan JS, Anda akan menggunakan GC JS asli terbaik di kelasnya, bukan GC yang ditiru dalam C++ & emscripten. Dan tidak perlu mengetahui ukuran heap yang tepat sebelum menargetkan JS.
Beberapa kelas seperti String, StringBuilder atau ArrayList diimplementasikan sedemikian rupa sehingga menggunakan fasilitas JavaScript/AS3/Dart... asli. Seperti JavaScript String, Array dan sebagainya.
Daripada membuat proyek besar yang mencakup semuanya, atau memiliki file konfigurasi proguard yang rumit. JTransc menyertakan pengocokan pohon dengan cara yang sederhana. Anda dapat menggunakan anotasi untuk menyimpan metode, kelas dan bidang atau anotasi lainnya. Ia bekerja untuk semua target dan terintegrasi penuh dalam alur kerja.
JTransc mendukung aplikasi Java biasa menggunakan Threads dan sinkronisasi I/O di JS mengubahnya menjadi versi asinkron di JS menggunakan menunggu/async mendeteksi cabang yang tidak menggunakan Threads/sync I/O untuk kinerja tercepat.
Bersama JTransc, saya sedang menulis satu set perpustakaan untuk dapat menggunakan JTransc.
https://github.com/soywiz/korlibs
Kotlin Game Engine yang menggunakan JTransc untuk multiplatform: https://github.com/soywiz/korge
Juga ada backend GDX menggunakan JTransc+Haxe: https://github.com/jtransc/gdx-backend-jtransc
JTransc
JTransc (Java Trans Compiler) adalah AOT (ahead of time compiler) yang mengkompilasi file .class dan .jar ke dalam bahasa pemrograman target / dapat dieksekusi yang menggabungkan semua dependensi yang diperlukan dalam satu file atau folder, tanpa memerlukan jitter atau runtime eksternal .
Pada awalnya menghasilkan as3 dan javascript, namun saat ini ada beberapa target: Javascript, Haxe, C++, dan D. Haxe sendiri memungkinkan untuk menargetkan beberapa bahasa lain: JS, AS3, C++, C#, Java, PHP dan Python. Hal ini pada gilirannya memungkinkan menjalankan program pada berbagai platform seperti desktop, browser, dan seluler.
Tujuan dari proyek ini adalah untuk menghadirkan produktivitas tinggi Kotlin (dan bahasa JVM lainnya) ke platform Haxe yang sangat portabel. Ini sudah mendukung sebagian besar API Java inti dan API refleksi Java biasa.
Fokus awalnya adalah pada JVM6, Kotlin dan Games, namun akan menjadi lebih baik di masa depan dengan mendukung versi jvm yang lebih baru, dan kasus penggunaan lainnya seperti aplikasi frontend dan backend.
Saat ini JTransc mendukung lambda Java8 dan metode default.
Ada modul bernama jtransc-rt-core yang dapat disertakan dalam proyek apa pun (baik menggunakan JTransc atau tidak). Ini menyediakan paket com.jtransc
, anotasi spesifik, akses memori cepat dan API asinkron, yang akan menggunakan fitur JTransc saat kompilasi menggunakan JTransc.
Ini juga beberapa proyek untuk aplikasi multimedia menggunakan jtransc:
Anda dapat menemukan contohnya di sini 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
Ini adalah cara yang lebih disukai dalam menggunakan JTransc. Anda dapat memasukkannya dari maven central atau langsung dari repositori plugin gradle:
plugins {
id "com.jtransc" version "0.6.8"
}
Ini akan menambah beberapa tugas untuk membangun aplikasi Anda. Ada blok gradle bernama jtransc, yang memungkinkan Anda menentukan hal-hal untuk build.
Misalnya gradle runJs
akan menghasilkan file JS di build/jtransc-js/program.js
dan menjalankannya menggunakan node.js.
Anda dapat melihat cara menggunakannya di dokumentasi.
Anda juga dapat menggunakan Maven, meskipun karena sifat gradle JTransc lebih cocok. Anda dapat melihat cara menggunakannya di dokumentasi.
Ada plugin yang sedang dikerjakan yang memungkinkan untuk menjalankan dan melakukan debug dalam intelliJ. Meski belum siap. Anda dapat menemukannya di folder jtransc-intellij-plugin.
Pada akhirnya AST perantara tersebut akan dapat dihasilkan atau dikonsumsi. Jadi yang lain bisa menghasilkannya tanpa JVM dan yang lain bisa menghasilkan target lain dari AST itu secara langsung tanpa semua kerumitan IR berbasis tumpukan.
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/lime#831
lime setup android
Jika coba instal Anda kehabisan Memori, pilih mode manual. 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
JENDELA
PATH
dengan kuat di baris pertamaSolusi untuk proyek besar: haxe 3.4.2 bisa gagal karena kehabisan memori. Anda dapat mencoba mengganti file haxe dari pengembangan, tetapi ini cara yang berbahaya, dan hanya mendapatkan yang stabil, lihat riwayat di github. Pilihan saya saat ini: 23-03-2017 05:39:01 >> 4876859 >> haxe_2017-03-23_development_ada466c.tar.gz
JENDELA 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
jika menggunakan MSVC 2013 dengan standar c99 yang tidak sepenuhnya didukung, ganti di libopenal semua inline ke __inline, dan snprintf ke _snprintf
lime rebuild windows -64
MAC
brew install automake libtool pkg-config
sudo npm install -g ios-deploy --unsafe-perm --allow-root