Rufen Sie zuerst die Quelle und erstellen.
So übersetzen Sie eine Java-Quelldatei (z. B. 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 Ihren C-Compiler aufruft. (normalerweise Clang, auch bekannt als LLVM, Apples C/C++/Objective-C Compiler). 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 das Übersetzen und Erstellen mit Symbolen zur Fehlerbehebung verwenden Sie beispielsweise das Flag -g
:
j2objcc -g -o hello Hello.m
Häufig gestellte Fragen
Wenn ich j2objcc
ausführe, wird die Meldung „Foundation/Foundation.h“ angezeigt. wurde nicht gefunden.
Wenn die Kompilierung fehlschlägt, weil Foundation/Foundation.h nicht gefunden wird, ist das Problem dass das iOS-SDK nicht gefunden wurde (dort befindet sich der Header).
- Stellen Sie sicher, dass Xcode installiert ist.
- Installieren Sie die Befehlszeilentools, indem Sie
xcode-select --install
ausführen. - Führen Sie
xcodebuild -showsdks
aus. Es sollte mindestens ein SDK für OS X, iOS, und iOS Simulator. - Wenn das nicht funktioniert, löschen Sie die Xcode-Anwendung und fahren Sie mit Schritt 1 fort.
Welche Flags übernimmt 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 zugehörigen Optionen aufzulisten.
Beim Kompilieren mit j2objcc
werden die Headerdateien (H) meines Projekts nicht gefunden.
Der Compiler muss das Verzeichnis kennen,
in dem sich die übersetzten Dateien befinden,
mit -I <directory>
. Wenn die Dateien also mit
j2objc -d foo/bar ...
,
benötigt der Befehl j2objcc
-Ifoo/bar
. Wenn kein Ausgabeverzeichnis
im Befehl j2objc
angegeben ist, muss -I.
hinzugefügt werden.
Wie führe ich die Ausführung unter Windows oder Linux aus?
J2ObjC ist ein iOS-Tool für die Entwicklung unter Mac OS X. Sie können nicht kompilieren. übersetzten Code, da hierfür ein OS X oder iOS-SDK von Apple erforderlich ist. setzt voraus, dass die SDKs nur auf Macs verwendet werden können.
Da der J2ObjC-Übersetzer jedoch ausschließlich auf Java basiert, kann die Übersetzung
anderen Systemen. Unter Linux sollte das Skript j2objc
unverändert funktionieren. Fenster
Für die Verwendung ist entweder CygWin oder das Aufrufen von Java erforderlich
. Um den Übersetzer ohne das Skript j2objc aufzurufen, verwenden Sie die Methode
Dabei ist J2OBJC_DIR
das Verzeichnis, in dem der
J2ObjC-Distributionsdatei wurde entpackt:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]