शुरू करें

पहला, इनमें से कोई एक:

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 कंपाइलर को शुरू करती है. आम तौर पर, इसे clang, यानी LLVM कहते हैं. Apple का C/C++/Objective-C कंपिलर). एक्ज़ीक्यूटेबल बनाने के लिए:

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

j2objcc, ऑब्जेक्टिव-सी कंपाइलर के लिए आपके तय किए गए विकल्पों को फ़ॉरवर्ड करता है. उदाहरण के लिए, डीबग करने के सिंबल का इस्तेमाल करके अनुवाद करने और उसे बनाने के लिए, -g फ़्लैग का इस्तेमाल करें:

j2objcc -g -o hello Hello.m

अक्सर पूछे जाने वाले सवाल

j2objcc चलाने पर, यह शिकायत करता है कि "फ़ाउंडेशन/फ़ाउंडेशन.h" नहीं मिला.

अगर Foundation/Foundation.h नहीं मिलने की वजह से कंपाइलेशन नहीं हो पाता, तो समस्या यह है कि iOS SDK नहीं मिला (जहां वह हेडर है).

  1. पक्का करें कि आपने Xcode इंस्टॉल किया हो.
  2. xcode-select --install चलाकर कमांड लाइन टूल इंस्टॉल करें.
  3. xcodebuild -showsdks चलाएं, जो OS X, iOS, और iOS सिम्युलेटर के लिए कम से कम एक SDK टूल दिखाए.
  4. अगर इससे काम नहीं बनता, तो Xcode ऐप्लिकेशन को मिटाएं और पहले चरण पर जाएं.

j2objcc के पास कौनसे फ़्लैग हैं?

j2objcc स्क्रिप्ट, ऑब्जेक्टिव-सी कंपाइलर, क्लैग के आस-पास एक रैपर है. इसके विकल्पों की सूची बनाने के लिए, man cc या man clang चलाएं.

j2objcc के साथ कंपाइल करते समय, मेरे प्रोजेक्ट की हेडर (.h) फ़ाइलें नहीं मिलीं.

-I <directory> का इस्तेमाल करके, कंपाइलर को उस डायरेक्ट्री की जानकारी होनी चाहिए जहां अनुवाद की गई फ़ाइलें मौजूद हैं. इसलिए, अगर फ़ाइलें j2objc -d foo/bar ... की मदद से जनरेट की गई हैं, तो j2objcc कमांड के लिए -Ifoo/bar की ज़रूरत होगी. अगर j2objc कमांड में कोई आउटपुट डायरेक्ट्री नहीं दी गई है, तो -I. को जोड़ना होगा.

मैं Windows या Linux पर कैसे चलाऊं?

J2ObjC एक iOS टूल है, जिसे Mac OS X पर डेवलपमेंट के लिए बनाया गया है. कोई भी अनुवाद किया गया कोड कंपाइल नहीं किया जा सकता, क्योंकि इसके लिए Apple का OS X या iOS SDK होना ज़रूरी है, जिसके 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]