يمكنك العثور على الوثائق في ويكي.
JTransc (Java Trans Compiler) هو برنامج AOT (مترجم مسبق) يقوم بتجميع ملفات .class و.jar إلى لغة برمجة مستهدفة / تجميع قابل للتنفيذ لجميع التبعيات المطلوبة في ملف أو مجلد واحد، دون الحاجة إلى اهتزاز أو وقت تشغيل خارجي .
هناك الكثير من التقنيات لتحويل اللغات إلى لغات أخرى. على سبيل المثال، تحويل جافا إلى جافا سكريبت. أو واجهة KotlinJS Kotlin الخلفية التي تستهدف JavaScript بالفعل. فلماذا استخدام JTransc؟
أحد الأسباب هو أن JTransc يسمح بالمشاريع المختلطة. يمكنك استخدام مكتبات Java مع كود Kotlin على سبيل المثال.
بدلاً من استخدام العديد من التقنيات، يتيح لك JTransc استهداف العديد من اللغات والأنظمة الأساسية.
إن استخدام تقنية واحدة فقط يضمن الاتساق بين الأهداف. على سبيل المثال، لا يدعم Kotlin JS انعكاس Java الكامل.
بدلاً من إنشاء C++ ثم استخدام emscripten أو تقنيات أخرى، يتيح لك JTransc إنشاء تعليمات برمجية أصلية لنظامك الأساسي. على سبيل المثال: عند استهداف JS، ستستخدم GC الأصلي الأفضل في فئته لـ JS بدلاً من GC الذي تمت محاكاته في C++ & emscripten. ولا داعي لمعرفة حجم الكومة المناسب مسبقًا لاستهداف JS.
يتم تنفيذ بعض الفئات مثل String أو StringBuilder أو ArrayList بطريقة تستخدم مرافق JavaScript/AS3/Dart... الأصلية. مثل JavaScript String وArray وما إلى ذلك.
بدلاً من إنشاء مشاريع ضخمة تتضمن كل شيء، أو وجود ملفات تكوين proguard معقدة. يتضمن JTransc هز الأشجار بطريقة بسيطة. يمكنك استخدام التعليقات التوضيحية للاحتفاظ بالأساليب والفئات والحقول أو التعليقات التوضيحية الأخرى. إنه يعمل لجميع الأهداف ويتم دمجه بالكامل في سير العمل.
يدعم JTransc تطبيقات Java العادية باستخدام الخيوط ومزامنة الإدخال/الإخراج في JS وتحويل ذلك إلى إصدار غير متزامن في JS باستخدام فروع الكشف عن الانتظار/غير المتزامن التي لا تستخدم الإدخال/الإخراج للخيوط/المزامنة للحصول على أسرع أداء.
على طول JTransc، أقوم بكتابة مجموعة من المكتبات حتى أتمكن من استخدام JTransc.
https://github.com/soywiz/korlibs
محرك ألعاب Kotlin الذي يستخدم JTransc لمنصات متعددة: https://github.com/soywiz/korge
هناك أيضًا واجهة خلفية GDX باستخدام JTransc+Haxe: https://github.com/jtransc/gdx-backend-jtransc
JTransc
JTransc (Java Trans Compiler) هو برنامج AOT (مترجم مسبق) يقوم بتجميع ملفات .class و.jar إلى لغة برمجة مستهدفة / تجميع قابل للتنفيذ لجميع التبعيات المطلوبة في ملف أو مجلد واحد، دون الحاجة إلى اهتزاز أو وقت تشغيل خارجي .
في البداية، تم إنشاء as3 وjavascript، ولكن في الوقت الحالي هناك عدة أهداف: Javascript وHaxe وC++ وD. يسمح Haxe نفسه باستهداف عدة لغات أخرى: JS وAS3 وC++ وC# وJava وPHP وPython. وهذا بدوره يسمح بتشغيل البرنامج على منصات مختلفة مثل سطح المكتب والمتصفحات والهاتف المحمول.
الهدف من هذا المشروع هو جلب الإنتاجية العالية لـ Kotlin (ولغات JVM الأخرى) إلى منصة Haxe المحمولة للغاية. إنه يدعم بالفعل معظم واجهات برمجة تطبيقات Java الأساسية وواجهة برمجة تطبيقات انعكاس Java البسيطة خارج الصندوق.
ينصب التركيز الأولي على JVM6 وKotlin والألعاب، ولكنه سيتحسن في المستقبل بدعم إصدارات jvm الأحدث وحالات الاستخدام الأخرى مثل تطبيقات الواجهة الأمامية والخلفية.
يدعم JTransc حاليًا Java8 lambdas والأساليب الافتراضية.
هناك وحدة تسمى jtransc-rt-core يمكن تضمينها في أي مشروع (سواء باستخدام JTransc أم لا). فهو يوفر حزمة com.jtransc
، وتعليقات توضيحية محددة، ووصولاً سريعًا للذاكرة وواجهات برمجة التطبيقات غير المتزامنة، التي ستستخدم ميزات JTransc عند التحويل البرمجي باستخدام JTransc.
هذان أيضًا مشروعان لتطبيقات الوسائط المتعددة باستخدام 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 runJs
بإنشاء ملف JS على build/jtransc-js/program.js
وتشغيله باستخدام العقدة js.
يمكنك معرفة كيفية استخدامه في الوثائق.
يمكنك أيضًا استخدام Maven، على الرغم من أن طبيعة JTransc gradle تناسب بشكل أفضل. يمكنك معرفة كيفية استخدامه في الوثائق.
يوجد مكون إضافي قيد التشغيل يسمح بالتشغيل والتصحيح داخل intelliJ. على الرغم من أنها ليست جاهزة بعد. يمكنك العثور عليه في مجلد jtransc-intellij-plugin.
في نهاية المطاف، سيكون من الممكن توليد أو استهلاك هذا AST الوسيط. لذلك يمكن للآخرين إنشاء ذلك بدون JVM ويمكن للآخرين إنشاء أهداف أخرى من AST مباشرة دون كل تعقيدات الـ IRs القائمة على المكدس.
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
######أوبن إف إل/ليمون#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
بقوة في السطر الأولالحل البديل للمشاريع الكبيرة: يمكن أن يفشل 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
إذا كنت تستخدم MSVC 2013 مع معيار c99 غير المدعوم بالكامل، فاستبدل libopenal الكل مضمّن إلى __inline، وsnprintf إلى _snprintf
lime rebuild windows -64
ماك
brew install automake libtool pkg-config
sudo npm install -g ios-deploy --unsafe-perm --allow-root