Başlayın

Öncelikle:

Bir Java kaynak dosyasını (örneğin, Hello.java) çevirmek için:

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

Çevrilen dosyayı derlemek için:

j2objcc -c Hello.m

j2objcc, C derleyicinizi (normalde clang, yani LLVM, Apple'ın C/C++/Objective-C derleyicisi) çağıran bir sarmalayıcı komut dosyasıdır. Yürütülebilir dosyayı oluşturmak için:

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

j2objcc, Objective-C derleyici için belirttiğiniz seçenekleri yönlendirir. Örneğin, çeviri yapmak ve hata ayıklama sembolleriyle derlemek için -g işaretini kullanın:

j2objcc -g -o hello Hello.m

Sık Sorulan Sorular

j2objcc sitesini çalıştırdığımda "Foundation/Foundation.h"nin bulunmadığından şikayet ediyor.

Foundation/Foundation.h bulunamadığı için derleme başarısız olursa sorun iOS SDK'nın bulunamamasından kaynaklanmaktadır (başlık burada bulunur).

  1. Cihazınızda Xcode'un yüklü olduğundan emin olun.
  2. xcode-select --install komutunu çalıştırarak komut satırı araçlarını yükleyin.
  3. OS X, iOS ve iOS Simülatörü için en az bir SDK gösterecek olan xcodebuild -showsdks aracını çalıştırın.
  4. Başarısız olursa Xcode uygulamasını silip 1. adıma geçin.

j2objcc hangi işaretlemeleri alır?

j2objcc komut dosyası, Objective-C derleyicisini (clang) çevreleyen bir sarmalayıcıdır. Seçeneklerini listelemek için man cc veya man clang komutunu çalıştırın.

j2objcc ile derleme yaparken, projemin başlık (.h) dosyaları bulunamıyor.

Derleyicinin, -I <directory> kullanarak çevrilmiş dosyaların bulunduğu dizini bilmesi gerekir. Dolayısıyla dosyalar j2objc -d foo/bar ... ile oluşturulduysa j2objcc komutu için -Ifoo/bar gerekir. j2objc komutunda herhangi bir çıkış dizini belirtilmemişse -I. ifadesinin eklenmesi gerekir.

Windows veya Linux'ta nasıl çalışabilirim?

J2ObjC, Mac OS X'te geliştirme için tasarlanmış bir iOS aracıdır. Çevrilmiş herhangi bir kodu derleyemezsiniz. Bunun nedeni, bu kodun Apple'ın SDK'larının yalnızca Mac'lerde kullanılmasını gerektiren bir OS X veya iOS SDK'sı gerektirmesidir.

Bununla birlikte, J2ObjC çevirmeni sadece Java olduğundan, çeviri diğer sistemlerde yapılabilir. Linux'ta j2objc komut dosyası değişmeden çalışacaktır. Windows kullanımı, CygWin'i veya doğrudan Java'yı çağırmayı gerektirir. Çevirmeni j2objc komut dosyası olmadan çağırmak için aşağıdaki yöntemi kullanın. Burada, J2OBJC_DIR, J2ObjC dağıtım dosyasının çıkarıldığı dizindir:

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