Wprowadzenie

Najpierw pobierz źródło ją utwórz.

Aby przetłumaczyć plik źródłowy w Javie (np. 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

Aby skompilować przetłumaczony plik:

j2objcc -c Hello.m

j2objcc to skrypt kodu, który wywołuje kompilator C. (normalnie clang, znany również jako LLVM, program Apple C/C++/Objective-C) kompilator). Aby utworzyć plik wykonywalny:

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

j2objcc przekazuje opcje, które określisz dla kompilatora Objective-C. Aby np. tłumaczyć i kompilować z użyciem symboli debugowania, użyj flagi -g:

j2objcc -g -o hello Hello.m

Najczęstsze pytania

Po uruchomieniu usługi j2objcc wyświetla się komunikat, że „Foundation/Foundation.h” nie można znaleźć.

Jeśli kompilacja się nie uda, ponieważ nie znaleziono elementu Foundation/Foundation.h, problem że nie znaleziono pakietu SDK na iOS (tam znajduje się ten nagłówek).

  1. Upewnij się, że masz zainstalowany Xcode.
  2. Zainstaluj narzędzia wiersza poleceń, uruchamiając xcode-select --install.
  3. Uruchom xcodebuild -showsdks, który powinien pokazywać co najmniej 1 pakiet SDK dla OS X, iOS oraz symulatora iOS.
  4. Jeśli to nie pomoże, usuń aplikację Xcode i przejdź do kroku 1.

Jakie flagi podejmuje j2objcc?

Skrypt j2objcc to tylko otoka kompilatora Objective-C – clang. Uruchom man cc lub man clang, aby wyświetlić listę opcji.

Podczas kompilowania za pomocą funkcji j2objcc nie można znaleźć plików nagłówka (.h) mojego projektu.

Kompilator musi znać katalog, w którym znajdują się przetłumaczone pliki, za pomocą funkcji -I <directory>. Jeśli pliki zostały wygenerowane za pomocą j2objc -d foo/bar ..., polecenie j2objcc wymaga -Ifoo/bar. Jeśli żaden katalog wyjściowy nie był określonych w poleceniu j2objc, musisz dodać -I..

Jak uruchomić w systemie Windows lub Linux?

J2ObjC to narzędzie dla iOS przeznaczone do programowania w systemie Mac OS X. Nie możesz skompilować przetłumaczony kod, ponieważ wymaga pakietu SDK dla systemu OS X lub iOS firmy Apple, wymaga, aby jego pakiety SDK były używane wyłącznie na komputerach Mac.

Ponieważ jednak tłumacz J2ObjC jest w języku Java, tłumaczenie można wykonać na z innymi systemami. W Linuksie skrypt j2objc powinien działać bez zmian. Okna wymaga CygWin lub wywołania Javy bezpośrednio. Aby wywołać tłumacza bez skryptu j2objc, użyj metody poniżej, gdzie J2OBJC_DIR to katalog, w którym Rozpakowano plik dystrybucji J2ObjC:

java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]