सबसे पहले, सोर्स पाएं और इसे बनाएं.
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, Apple का C/C++/Objective-C भी कहा जाता है कंपाइलर). एक्ज़ीक्यूटेबल बनाने के लिए:
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 के न मिलने के कारण कंपाइलेशन विफल होने पर समस्या कि iOS SDK नहीं मिला (जहां वह हेडर है).
- पक्का करें कि आपने Xcode इंस्टॉल किया हो.
xcode-select --install
चलाकर, कमांड-लाइन टूल इंस्टॉल करें.xcodebuild -showsdks
चलाएं, जिसमें OS X, iOS, और iOS सिम्युलेटर.- अगर यह काम नहीं करता है, तो Xcode ऐप्लिकेशन को मिटाएं और पहले चरण पर जाएं.
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 पर डेवलपमेंट के लिए है. कंपाइल नहीं किया जा सकता कोड का अनुवाद नहीं करेगा, क्योंकि इसके लिए Apple के OS X या iOS SDK टूल की ज़रूरत होती है, यह ज़रूरी है कि इसके SDK टूल का इस्तेमाल सिर्फ़ Mac पर किया जाए.
हालांकि, J2ObjC अनुवादक सिर्फ़ Java है, इसलिए अनुवाद
इस्तेमाल करते हैं. Linux पर, j2objc
स्क्रिप्ट में कोई बदलाव नहीं होना चाहिए. विंडो
इस्तेमाल के लिए CygWin की ज़रूरत होती है या Java का इस्तेमाल करना ज़रूरी होता है
सकता है. j2objc स्क्रिप्ट के बिना अनुवादक शुरू करने के लिए,
जहां J2OBJC_DIR
वह डायरेक्ट्री है जिसमें
J2ObjC डिस्ट्रिब्यूशन फ़ाइल को अनज़िप किया गया:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]