Pertama, antara lain:
- Download distribusi saat ini dari bagian Rilis dan ekstrak, atau
- Mendapatkan sumber dan membuatnya.
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 compiler C (biasanya clang, alias LLVM, compiler C/C++/Objective-C Apple). Untuk mem-build file yang dapat dieksekusi:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc meneruskan opsi apa pun yang Anda tentukan untuk compiler Objective-C.
Misalnya, untuk menerjemahkan dan melakukan build dengan simbol proses debug, gunakan flag -g
:
j2objcc -g -o hello Hello.m
Pertanyaan Umum (FAQ)
Saat saya menjalankan j2objcc
, muncul pesan bahwa "Foundation/Foundation.h" tidak ditemukan.
Jika kompilasi gagal karena Foundation/Foundation.h tidak ditemukan, masalahnya adalah iOS SDK tidak ditemukan (di situlah header tersebut).
- Pastikan Anda telah menginstal Xcode.
- Instal alat command line dengan menjalankan
xcode-select --install
. - Jalankan
xcodebuild -showsdks
, yang akan menampilkan setidaknya satu SDK untuk Simulator OS X, iOS, dan iOS. - 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.
Compiler perlu mengetahui direktori tempat file yang diterjemahkan berada,
menggunakan -I <directory>
. Jadi, jika file dibuat dengan j2objc -d foo/bar ...
,
perintah j2objcc
memerlukan -Ifoo/bar
. Jika tidak ada direktori output yang ditentukan dalam perintah j2objc
, -I.
perlu ditambahkan.
Bagaimana cara menjalankannya di Windows atau Linux?
J2ObjC adalah alat iOS yang ditujukan untuk pengembangan di Mac OS X. Anda tidak dapat mengompilasi kode apa pun yang diterjemahkan karena memerlukan OS X atau iOS SDK dari Apple, yang mengharuskan SDK-nya hanya digunakan di Mac.
Namun, karena penerjemah J2ObjC adalah aplikasi Java murni, penerjemahan dapat dilakukan di
sistem lain. Di Linux, skrip j2objc
tidak akan berubah. Penggunaan
Windows memerlukan CygWin, atau memanggil Java
secara langsung. Untuk memanggil penerjemah tanpa skrip j2objc, gunakan kode berikut dengan J2OBJC_DIR
adalah direktori tempat file distribusi J2ObjC diekstrak:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]