Java ソースファイル(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
よくある質問
j2objcc
を実行すると、「Foundation/Foundation.h」というメッセージが表示されます。見つかりませんでした。
Foundation/Foundation.h が見つからないためにコンパイルに失敗した場合は、 iOS SDK が見つからなかったことです(そのヘッダーがあります)。
- Xcode がインストールされていることを確認します。
xcode-select --install
を実行してコマンドライン ツールをインストールします。xcodebuild -showsdks
を実行します。OS X、iOS、 iOS Simulator があります。- 失敗した場合は、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 ツールです。コンパイルできない 変換には、Apple の OS X または iOS SDK が必要です。 Mac でのみ SDK を使用する必要があります。
ただし、J2ObjC トランスレータは純粋な Java であるため、Java のみの翻訳は実行できます。
分析できますLinux では、j2objc
スクリプトは変更なしで動作します。Windows
CygWin か、Java
直接渡されます。j2objc スクリプトなしでトランスレータを呼び出すには、
ここで、J2OBJC_DIR
はイメージが格納されているディレクトリです。
J2ObjC 配布ファイルを解凍しました。
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]