Pertama, dapatkan sumber dan membangunnya.
Untuk menerjemahkan file sumber Java (misalnya, 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
Untuk mengompilasi file yang diterjemahkan:
j2objcc -c Hello.m
j2objcc adalah skrip wrapper yang memanggil kompiler C Anda (biasanya clang, juga dikenal sebagai LLVM, C/C++/Objective-C Apple compiler). Untuk membangun file yang dapat dieksekusi:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc meneruskan opsi apa pun yang Anda tentukan untuk kompilator Objective-C.
Misalnya, untuk menerjemahkan dan membangun aplikasi dengan simbol proses debug, gunakan tanda -g
:
j2objcc -g -o hello Hello.m
Pertanyaan Umum (FAQ)
Saat saya menjalankan j2objcc
, aplikasi ini mengeluhkan bahwa "Foundation/Foundation.h" tidak ditemukan.
Jika kompilasi gagal karena Foundation/Foundation.h tidak ditemukan, masalahnya adalah karena iOS SDK tidak ditemukan (di situlah header tersebut berada).
- Pastikan Anda telah menginstal Xcode.
- Instal alat command line dengan menjalankan
xcode-select --install
. - Jalankan
xcodebuild -showsdks
, yang akan menampilkan setidaknya satu SDK untuk OS X, iOS, dan iOS Simulator. - Jika gagal, hapus aplikasi Xcode dan lanjutkan ke langkah 1.
Tanda apa yang diambil j2objcc
?
Skrip j2objcc
hanyalah wrapper di sekitar compiler Objective-C, clang.
Jalankan man cc
atau man clang
untuk mencantumkan opsinya.
Saat mengompilasi dengan j2objcc
, file header (.h) project saya tidak dapat ditemukan.
Kompilator perlu mengetahui direktori
tempat file yang diterjemahkan,
menggunakan -I <directory>
. Jadi jika file dibuat dengan
j2objc -d foo/bar ...
,
maka perintah j2objcc
memerlukan -Ifoo/bar
. Jika tidak ada direktori output yang
ditentukan dalam perintah j2objc
, maka -I.
perlu ditambahkan.
Bagaimana cara menjalankan aplikasi di Windows atau Linux?
J2ObjC adalah alat iOS yang digunakan untuk pengembangan di Mac OS X. Anda tidak dapat mengompilasi kode yang diterjemahkan karena memerlukan OS X atau iOS SDK dari Apple, yang memerlukan SDK-nya hanya digunakan di Mac.
Namun, karena penerjemah J2ObjC adalah murni Java, penerjemahan dapat dilakukan pada
sistem lain. Di Linux, skrip j2objc
seharusnya berfungsi tanpa perubahan. Jendela
Anda memerlukan CygWin, atau memanggil Java
secara langsung. Untuk memanggil penerjemah tanpa skrip j2objc, gunakan metode
mengikuti, dengan J2OBJC_DIR
sebagai direktori tempat
File distribusi J2ObjC telah diekstrak:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]