コマンドラインからARMv7ターゲットの簡単なJavaの例をクロスコンパイルしようとしています。
クロスコンパイルのために追加する必要があるjavacオプションは何ですか?
これは、ホストマシンでコンパイルするための標準のjavacコマンドです。
javac -d bin -sourcepath src src/TextPanel.java
javac
コードをバイトコードにコンパイルし、JVMで実行できるようにします。バイトコード自体はクロスプラットフォームです。JVM(そのバイトコードを解釈する)のみがプラットフォームに依存します。必要なのは、ARMv7ターゲットで実行されるJVMです。
なし。
ほとんどのJavaコンパイラは、特定のJVM仕様を対象とするJavaバイトコードを生成します。生成されたコードはそのようなVMで実行され、「その上で実行されるJVM実装はありますか?」以外のマシンアーキテクチャについて気にする必要はありません。
もちろん、他の何か(gjcなど)を生成するコンパイラもありますが、javac
フロントエンドはかなり標準的なjavacである必要があります。比較:GCCツールチェーンを使用してCコードをクロスコンパイルする場合、コマンドラインの唯一の違いは、呼び出すコンパイラバイナリを選択することです。コンパイラへのフラグとパラメータは同じままで、名前だけが変更されます(たとえば、gcc
からi686-w64-mingw32-gcc
)。