Dazu haben Sie zwei Möglichkeiten:
- Laden Sie die aktuelle Distribution im Abschnitt Releases herunter und entpacken Sie sie oder
- Rufen Sie die Quelle ab und erstellen Sie sie.
So übersetzen Sie eine Java-Quelldatei (zum Beispiel 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
So kompilieren Sie die übersetzte Datei:
j2objcc -c Hello.m
j2objcc ist ein Wrapper-Skript, das den C-Compiler (normalerweise Clang, auch LLVM, Apples C/C++/Objective-C-Compiler) aufruft. So erstellen Sie die ausführbare Datei:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc leitet alle Optionen weiter, die Sie für den Objective-C-Compiler angeben.
Für die Übersetzung und Erstellung mit Debugging-Symbolen verwenden Sie beispielsweise das Flag -g
:
j2objcc -g -o hello Hello.m
Häufig gestellte Fragen
Beim Ausführen von j2objcc
wird die Meldung angezeigt, dass „Foundation/Foundation.h“ nicht gefunden wurde.
Wenn die Kompilierung fehlschlägt, weil Foundation/Foundation.h nicht gefunden wird, liegt das Problem darin, dass das iOS SDK nicht gefunden wurde (hier befindet sich der Header).
- Stellen Sie sicher, dass Xcode installiert ist.
- Führen Sie
xcode-select --install
aus, um die Befehlszeilentools zu installieren. - Führen Sie
xcodebuild -showsdks
aus. Damit sollte mindestens ein SDK für OS X, iOS und der iOS-Simulator angezeigt werden. - Wenn dies nicht funktioniert, löschen Sie die Xcode-Anwendung und fahren Sie mit Schritt 1 fort.
Welche Meldungen verwendet j2objcc
?
Das Skript j2objcc
ist nur ein Wrapper um den Objective-C-Compiler Clang.
Führen Sie man cc
oder man clang
aus, um die Optionen aufzulisten.
Beim Kompilieren mit j2objcc
werden die Header-Dateien (.h) meines Projekts nicht gefunden.
Der Compiler muss mithilfe von -I <directory>
das Verzeichnis kennen, in dem sich die übersetzten Dateien befinden. Wenn die Dateien also mit j2objc -d foo/bar ...
generiert wurden, benötigt der Befehl j2objcc
-Ifoo/bar
. Wenn im Befehl j2objc
kein Ausgabeverzeichnis angegeben wurde, muss -I.
hinzugefügt werden.
Wie führe ich Windows oder Linux aus?
J2ObjC ist ein iOS-Tool für die Entwicklung unter Mac OS X. Sie können keinen übersetzten Code kompilieren, da hierfür ein OS X- oder iOS-SDK von Apple erforderlich ist, dessen SDKs nur auf Macs verwendet werden können.
Da der J2ObjC-Übersetzer jedoch reines Java ist, kann die Übersetzung auch auf anderen Systemen durchgeführt werden. Unter Linux sollte das Skript j2objc
unverändert funktionieren. Für die Verwendung von Windows ist entweder CygWin oder das direkte Aufrufen von Java erforderlich. Um den Übersetzer ohne das j2objc-Skript aufzurufen, verwenden Sie folgenden Befehl, wobei J2OBJC_DIR
das Verzeichnis ist, in dem die J2ObjC-Distributionsdatei entpackt wurde:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]