Tout d'abord, récupérez la source, puis le créer.
Pour traduire un fichier source Java (Hello.java, par exemple):
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
Pour compiler le fichier traduit:
j2objcc -c Hello.m
j2objcc est un script wrapper qui appelle votre compilateur C. (normalement clang, également appelé LLVM, C/C++/Objective-C d'Apple compilateur). Pour créer l'exécutable:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc transfère les options que vous spécifiez pour le compilateur Objective-C.
Par exemple, pour traduire et compiler avec des symboles de débogage, utilisez l'indicateur -g
:
j2objcc -g -o hello Hello.m
Questions fréquentes
Lorsque j'exécute j2objcc
, le système me plaint que "Foundation/Foundation.h" est introuvable.
Si la compilation échoue parce que Foundation/Foundation.h est introuvable, le problème est que le SDK iOS est introuvable (c'est là que se trouve cet en-tête).
- Assurez-vous que Xcode est installé.
- Installez les outils de ligne de commande en exécutant
xcode-select --install
. - Exécutez
xcodebuild -showsdks
. Elle devrait afficher au moins un SDK pour OS X, iOS, et iOS Simulator. - En cas d'échec, supprimez l'application Xcode et passez à l'étape 1.
Quels indicateurs sont pris en compte par j2objcc
?
Le script j2objcc
n'est qu'un wrapper autour du compilateur Objective-C, clang.
Exécutez man cc
ou man clang
pour lister ses options.
Lors de la compilation avec j2objcc
, les fichiers d'en-tête (.h) de mon projet sont introuvables.
Le compilateur doit connaître le répertoire
dans lequel se trouvent les fichiers traduits,
avec -I <directory>
. Donc, si les fichiers
ont été générés avec
j2objc -d foo/bar ...
,
alors la commande j2objcc
a besoin de -Ifoo/bar
. Si aucun répertoire de sortie n'était
spécifié dans la commande j2objc
, vous devez ajouter -I.
.
Comment exécuter mon application sous Windows ou Linux ?
J2ObjC est un outil iOS conçu pour le développement sur Mac OS X. Vous ne pouvez pas compiler du code traduit, car il nécessite le SDK OS X ou iOS d'Apple, ce qui nécessite que ses SDK ne soient utilisés que sur Mac.
Cependant, comme le traducteur J2ObjC est en Java pur, la traduction peut être effectuée sur
avec d'autres systèmes. Sous Linux, le script j2objc
devrait fonctionner tel quel. Windows
requiert CygWin ou Java.
directement. Pour appeler le traducteur sans le script j2objc, utilisez la méthode
suivant, où J2OBJC_DIR
est le répertoire dans lequel
Le fichier de distribution J2ObjC a été décompressé:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]