Informationen für Einsteiger

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).

  1. Stellen Sie sicher, dass Xcode installiert ist.
  2. Installieren Sie die Befehlszeilentools, indem Sie xcode-select --install ausführen.
  3. Führen Sie xcodebuild -showsdks aus. Es sollte mindestens ein SDK für OS X, iOS, und iOS Simulator.
  4. 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]