Premiers pas

Tout d'abord, vous avez deux possibilités:

  • Téléchargez la distribution actuelle depuis la section Releases (Versions), puis décompressez-la, ou
  • Récupérez la source et compilez-la.

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 (généralement clang, alias LLVM, compilateur C/C++/Goal-C d'Apple). Pour créer l'exécutable, procédez comme suit:

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

j2objcc transfère les options que vous spécifiez pour le compilateur Goal-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, l'application me signale 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 (il s'agit de l'en-tête).

  1. Assurez-vous que Xcode est installé.
  2. Installez les outils de ligne de commande en exécutant xcode-select --install.
  3. Exécutez xcodebuild -showsdks. Ce fichier devrait afficher au moins un SDK pour OS X, iOS et le simulateur iOS.
  4. En cas d'échec, supprimez l'application Xcode et passez à l'étape 1.

Quels indicateurs sont pris en charge par j2objcc ?

Le script j2objcc n'est qu'un wrapper autour du compilateur Objective-C, clang. Exécutez man cc ou man clang pour répertorier 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 à l'aide de -I <directory>. Ainsi, si les fichiers ont été générés avec j2objc -d foo/bar ..., la commande j2objcc a besoin de -Ifoo/bar. Si aucun répertoire de sortie n'a été spécifié dans la commande j2objc, -I. doit être ajouté.

Comment exécuter l'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 de code traduit, car il nécessite un SDK OS X ou iOS d'Apple, qui exige que ses SDK ne soient utilisés que sur Mac.

Toutefois, le traducteur J2ObjC étant en Java pur, la traduction peut être effectuée sur d'autres systèmes. Sous Linux, le script j2objc ne devrait pas changer. Pour utiliser Windows, vous devez utiliser CygWin ou appeler directement Java. Pour appeler le traducteur sans le script j2objc, utilisez ce qui suit, où J2OBJC_DIR correspond au 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]