دليل البدء

أولاً، عليك تنفيذ أحد الإجراءين التاليَين:

لترجمة ملف مصدر Java (Hello.java، على سبيل المثال):

public class Hello {
  public static void main(String[] args) {
    System.out.println("hello, world");
  }
}
j2objc Hello.java
translating Hello.java
Translated 1 file: 0 errors, 0 warnings

لتجميع الملف المترجَم:

j2objcc -c Hello.m

j2objcc هو نص برمجي يستدعي المحول البرمجي لـ C (عادةً ما يُعرف باسم LLVM، برنامج التحويل البرمجي لـ C/C++/Goal-C من Apple). لإنشاء الملف التنفيذي:

j2objcc -o hello Hello.o
./hello Hello
hello, world

يعيد j2objcc توجيه أي خيارات تحددها إلى المحول البرمجي لـ FALSE. على سبيل المثال، للترجمة والإنشاء باستخدام رموز تصحيح الأخطاء، استخدِم العلامة -g:

j2objcc -g -o hello Hello.m

الأسئلة الشائعة

عند تشغيل j2objcc، يتم تقديم شكوى لعدم العثور على "Foundation/Foundation.h".

إذا تعذّر التحويل بسبب عدم العثور على Foundation/Foundation.h، تكمن المشكلة في أنه لم يتم العثور على حزمة SDK لنظام التشغيل iOS (هنا حيث يوجد هذا العنوان).

  1. تأكَّد من تثبيت Xcode على جهازك.
  2. ثبِّت أدوات سطر الأوامر من خلال تشغيل xcode-select --install.
  3. شغِّل xcodebuild -showsdks، والذي من المفترض أن يعرض حزمة SDK واحدة على الأقل لنظام التشغيل OS X وiOS وiOS Simulator.
  4. إذا تعذّر ذلك، احذف تطبيق Xcode وانتقِل إلى الخطوة 1.

ما هي العلامات التي يتّخذها تطبيق j2objcc؟

النص البرمجي j2objcc ما هو إلا برنامج تضمين حول المحول البرمجي لـ FALSE. شغِّل man cc أو man clang لعرض خياراته.

لا يمكن العثور على ملفات عنوان مشروعي (h.) عند التجميع باستخدام j2objcc.

يحتاج المحوِّل البرمجي إلى معرفة الدليل الذي توجد فيه الملفات المترجَمة، باستخدام -I <directory>. لذلك، إذا تم إنشاء الملفات باستخدام j2objc -d foo/bar ...، سيحتاج الأمر j2objcc إلى -Ifoo/bar. إذا لم يتم تحديد أي دليل ناتج في الأمر j2objc، يجب إضافة -I..

كيف يمكن تشغيل الجهاز على نظام التشغيل Windows أو Linux؟

J2ObjC هي أداة لنظام iOS مُخصصة للتطوير على نظام التشغيل Mac OS X. لا يمكنك تجميع أي رمز مُترجَم لأنه يتطلب حزمة تطوير برامج (SDK) لنظام التشغيل OS X أو iOS من Apple، ما يتطلب استخدام حِزم SDK الخاصة بها على أجهزة Mac فقط.

ونظرًا لأن مترجم J2ObjC هو لغة Java خالصة، يمكن إجراء الترجمة على أنظمة أخرى. في نظام التشغيل Linux، من المفترض أن يعمل النص البرمجي j2objc بدون تغيير. يتطلب استخدام Windows إما CygWin أو استدعاء Java مباشرةً. لاستدعاء المترجم بدون النص البرمجي j2objc، استخدم التالي حيث J2OBJC_DIR هو الدليل الذي تم فيه فك ضغط ملف التوزيع J2ObjC:

java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]