البدء

أولاً، اطّلِع على المصدر إنشاءها

لترجمة ملف مصدر 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++/Objective-C من Apple) برنامج تجميع). لإنشاء الملف التنفيذي:

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

يقوم j2objcc بإعادة توجيه الخيارات التي تحددها للمحول البرمجي لـ Objective-C. على سبيل المثال، للترجمة والإنشاء باستخدام رموز تصحيح الأخطاء، استخدِم علامة -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.
  4. إذا لم ينجح ذلك، احذف تطبيق Xcode وانتقِل إلى الخطوة 1.

ما هي العلامات التي يتخذها j2objcc؟

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

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

يحتاج برنامج التجميع إلى معرفة الدليل الذي توجد به الملفات المترجمة، باستخدام -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]