Innanzitutto:
- Scarica la distribuzione corrente dalla sezione Uscite e decomprimila oppure
- Ottieni il source e crealo.
Per tradurre un file di origine Java (ad esempio 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
Per compilare il file tradotto:
j2objcc -c Hello.m
j2objcc è uno script wrapper che richiama il compilatore C (normalmente clang, anche noto come LLVM, il compilatore C/C++/Objective-C di Apple). Per creare l'eseguibile:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc inoltra qualsiasi opzione specificata per il compilatore Objective-C.
Ad esempio, per tradurre e creare con simboli di debug, utilizza il flag -g
:
j2objcc -g -o hello Hello.m
Domande frequenti
Quando eseguo j2objcc
, mi risulta che "Foundation/Foundation.h" non sia stato trovato.
Se la compilazione non riesce perché non viene trovato Foundation/Foundation.h, il problema è che non è stato trovato l'SDK per iOS (quindi si trova l'intestazione).
- Assicurati di aver installato Xcode.
- Installa gli strumenti a riga di comando eseguendo
xcode-select --install
. - Esegui
xcodebuild -showsdks
, che dovrebbe mostrare almeno un SDK per OS X, iOS e iOS Simulator. - Se il problema persiste, elimina l'applicazione Xcode e vai al passaggio 1.
Quali segnalazioni richiede j2objcc
?
Lo script j2objcc
è solo un involucro attorno al compilatore Objective-C, ovvero al clang.
Esegui man cc
o man clang
per elencare le relative opzioni.
Durante la compilazione con j2objcc
, non è possibile trovare i file di intestazione (.h) del mio progetto.
Il compilatore deve conoscere la directory in cui si trovano i file tradotti,
utilizzando -I <directory>
. Quindi, se i file sono stati generati con j2objc -d foo/bar ...
,
il comando j2objcc
richiede -Ifoo/bar
. Se nel comando j2objc
non è stata specificata alcuna directory di output, è necessario aggiungere -I.
.
Come posso eseguire l'esecuzione su Windows o Linux?
J2ObjC è uno strumento iOS per lo sviluppo su Mac OS X. Non puoi compilare alcun codice tradotto perché richiede un SDK OS X o iOS di Apple, che a sua volta richiede l'utilizzo degli SDK solo su Mac.
Tuttavia, poiché il traduttore J2ObjC è puro Java, la traduzione può essere eseguita su altri sistemi. Su Linux, lo script j2objc
non dovrebbe funzionare. L'utilizzo di Windows richiede CygWin o il richiamo diretto di Java. Per richiamare il traduttore senza lo script j2objc, utilizza quanto segue, dove J2OBJC_DIR
è la directory in cui è stato decompresso il file di distribuzione di J2ObjC:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]