먼저 다음 중 하나를 실행합니다.
자바 소스 파일 (예: 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를 찾을 수 없는 것입니다 (이 헤더가 있는 위치).
- Xcode가 설치되어 있는지 확인합니다.
xcode-select --install
를 실행하여 명령줄 도구를 설치합니다.xcodebuild -showsdks
를 실행합니다. 그러면 OS X, iOS 및 iOS 시뮬레이터용 SDK가 하나 이상 표시됩니다.- 그래도 해결되지 않으면 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]