시작하기

먼저 다음 중 하나를 실행합니다.

자바 소스 파일 (예: 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

번역된 파일을 컴파일하는 방법은 다음과 같습니다.

j2objcc -c Hello.m

j2objcc는 C 컴파일러를 호출하는 래퍼 스크립트입니다(일반적으로 clang(LLVM, Apple의 C/C++/Objective-C 컴파일러라고도 함)). 실행 파일을 빌드하려면 다음 안내를 따르세요.

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

j2objcc는 Objective-C 컴파일러에 지정한 모든 옵션을 전달합니다. 예를 들어 디버깅 기호로 변환하고 빌드하려면 -g 플래그를 사용합니다.

j2objcc -g -o hello Hello.m

자주 묻는 질문(FAQ)

j2objcc를 실행하면 'Foundation/Foundation.h'를 찾을 수 없다는 오류 메시지가 표시됩니다.

Foundation/Foundation.h를 찾을 수 없어서 컴파일이 실패하면 iOS SDK를 찾을 수 없는 것입니다 (이 헤더가 있는 위치).

  1. Xcode가 설치되어 있는지 확인합니다.
  2. xcode-select --install를 실행하여 명령줄 도구를 설치합니다.
  3. xcodebuild -showsdks를 실행합니다. 그러면 OS X, iOS 및 iOS 시뮬레이터용 SDK가 하나 이상 표시됩니다.
  4. 그래도 해결되지 않으면 Xcode 애플리케이션을 삭제하고 1단계로 이동합니다.

j2objcc는 어떤 플래그를 사용하나요?

j2objcc 스크립트는 Objective-C 컴파일러인 clang을 둘러싼 래퍼입니다. man cc 또는 man clang를 실행하여 옵션을 나열합니다.

j2objcc로 컴파일할 때 프로젝트의 헤더 (.h) 파일을 찾을 수 없습니다.

컴파일러는 -I <directory>를 사용하여 번역된 파일이 있는 디렉터리를 알아야 합니다. 따라서 파일이 j2objc -d foo/bar ...로 생성된 경우에는 j2objcc 명령어에 -Ifoo/bar가 필요합니다. j2objc 명령어에 출력 디렉터리가 지정되지 않은 경우 -I.를 추가해야 합니다.

Windows 또는 Linux에서 실행하려면 어떻게 해야 하나요?

J2ObjC는 Mac OS X에서 개발하기 위한 iOS 도구입니다. 번역된 코드는 컴파일할 수 없습니다. SDK가 Mac에서만 사용해야 하는 Apple의 OS X 또는 iOS SDK가 필요하기 때문입니다.

그러나 J2ObjC 변환기는 순수 Java이므로 다른 시스템에서 변환을 실행할 수 있습니다. Linux에서는 j2objc 스크립트가 변경되지 않고 작동합니다. Windows를 사용하려면 CygWin을 이용하거나 자바를 직접 호출해야 합니다. j2objc 스크립트 없이 변환기를 호출하려면 다음을 사용합니다. 여기서 J2OBJC_DIR는 J2ObjC 배포 파일의 압축을 푼 디렉터리입니다.

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