Najpierw:
- Pobierz bieżącą dystrybucję z sekcji Wersje i rozpakuj ją lub
- Pobierz źródło i utwórz je.
Aby przetłumaczyć plik źródłowy Java (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 opakowujący, który wywołuje kompilator C (zwykle clang, czyli LLVM, kompilator C/C++/Objective-C firmy Apple). Aby skompilować plik wykonywalny:
j2objcc -o hello Hello.o
./hello Hello
hello, world
Metoda j2objcc przekazuje wszystkie opcje określone dla kompilatora Objective-C.
Na przykład do tłumaczenia i tworzenia z użyciem symboli debugowania możesz użyć flagi -g
:
j2objcc -g -o hello Hello.m
Najczęstsze pytania
Gdy uruchamiam j2objcc
, wyświetla się komunikat, że nie można znaleźć pliku „Foundation/Foundation.h”.
Jeśli kompilacja się nie uda z powodu nieznalezienia obiektu Foundation/Foundation.h, problem polega na tym, że nie znaleziono pakietu SDK na iOS (tam jest nagłówek).
- Upewnij się, że masz zainstalowany Xcode.
- Zainstaluj narzędzia wiersza poleceń, uruchamiając polecenie
xcode-select --install
. - Uruchom plik
xcodebuild -showsdks
, który powinien wyświetlać co najmniej 1 pakiet SDK dla symulatora OS X, iOS i iOS. - Jeśli to nie pomoże, usuń aplikację Xcode i przejdź do kroku 1.
Jakie flagi rejestruje j2objcc
?
Skrypt j2objcc
jest po prostu otoką kompilatora Objective-C (clang).
Uruchom polecenie man cc
lub man clang
, aby wyświetlić listę opcji.
Podczas kompilacji za pomocą usługi j2objcc
nie mogę znaleźć plików nagłówka (.h) mojego projektu.
Kompilator musi za pomocą -I <directory>
mieć dostęp do katalogu, w którym znajdują się przetłumaczone pliki. Jeśli więc pliki zostały wygenerowane za pomocą j2objc -d foo/bar ...
, polecenie j2objcc
wymaga -Ifoo/bar
. Jeśli w poleceniu j2objc
nie określono katalogu wyjściowego, należy dodać -I.
.
Jak uruchomić grę w systemie Windows lub Linux?
J2ObjC to narzędzie na iOS przeznaczone do programowania w systemie Mac OS X. Nie można kompilować przetłumaczonego kodu, ponieważ wymaga on pakietu SDK OS X lub iOS od Apple, który wymaga, aby pakiety SDK były używane tylko na komputerach Mac.
Ponieważ jednak tłumacz J2ObjC jest w języku Java, tłumaczenie może być wykonywane w innych systemach. W Linuksie skrypt j2objc
powinien działać bez zmian. Używanie w systemie Windows wymaga CygWin lub bezpośredniego wywoływania Javy. Aby wywołać tłumacza bez skryptu j2objc, użyj tego kodu, gdzie J2OBJC_DIR
to katalog, w którym rozpakowano plik dystrybucyjny J2ObjC:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]