Başlarken

İlk olarak kaynağı ve oluşturun.

Bir Java kaynak dosyasını çevirmek için (örneğin, 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

Çevrilmiş dosyayı derlemek için:

j2objcc -c Hello.m

j2objcc, C derleyicinizi çağıran bir sarmalayıcı komut dosyasıdır (normalde LLVM, Apple'ın C/C++/Objective-C) olarak da bilinen clang derleyici) oluşturun. Yürütülebilir dosyayı derlemek 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 ve hata ayıklama sembolleriyle derlemek için -g işaretini kullanın:

j2objcc -g -o hello Hello.m

Sık Sorulan Sorular

j2objcc çalıştırdığımda "Temel/Temel.h" oluşturuyor. bulunamadı.

Foundation/Foundation.h bulunamadığından derleme başarısız olursa sorun iOS SDK'sının bulunamamasıdır (başlık bu konumdadır).

  1. 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. xcodebuild -showsdks çalıştırın. Bu komut, OS X, iOS ve iOS için en az bir SDK göstermelidir. ve iOS Simülatörü'dür.
  4. Bu başarısız olursa Xcode uygulamasını silin ve 1. adıma gidin.

j2objcc hangi işaretleri alır?

j2objcc komut dosyası, Objective-C derleyicisi olan clang'ın etrafına yerleştirilmiş bir sarmalayıcıdır. Seçeneklerini listelemek için man cc veya man clang komutunu çalıştırın.

j2objcc ile derlerken projemin başlık (.h) dosyaları bulunamıyor.

Derleyicinin, çevrilmiş dosyaların bulunduğu dizini bilmesi gerekir. -I <directory> kullanılıyor. Dosyalar j2objc -d foo/bar ..., j2objcc komutu için -Ifoo/bar gerekir. Çıkış dizini yoksa j2objc komutunda belirtilirse -I. eklenmesi gerekir.

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

J2ObjC, Mac OS X'te geliştirme için tasarlanmış bir iOS aracıdır. Derleyemezsiniz çünkü Apple'dan OS X veya iOS SDK'sı gerektirdiğinden, çevrilmiş SDK'larının yalnızca Mac bilgisayarlarda kullanılmasını gerektirir.

Ancak, J2ObjC çevirmeni tamamen Java olduğundan, çeviri başka sistemlerde de işe yarar. Linux'ta j2objc komut dosyası değiştirilmeden çalışmalıdır. Pencereler kullanımı CygWin veya Java'nın çağrılması gerekir doğrudan ekleyebilirsiniz. Çevirmeni j2objc komut dosyası olmadan çağırmak için Burada J2OBJC_DIR, J2ObjC dağıtım dosyası açıldı:

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