LinuxアプリケーションからBazelを使用しているRaspberry PiにJavaアプリケーションをクロスコンパイルできるようにしたいと考えています。ホストコンピュータとは異なるアーキテクチャのJREをBazelに含めるにはどうすればできますか?
私が実行している基本的な問題は、生成された起動スクリプトが、runfilesディレクトリにあるJavaランチャを参照し、ホストコンピュータに基づいてそのバイナリをパッケージ化しているようです。
--cpuをarmeabi-v7aに設定するだけで効果がないようですが、Linaroツールチェーンを使用してC++バイナリをビルドするCROSSTOOLSを入手することはできますが、同様にJavaツールを代替する方法を教えてください。
私はjava_runtime、java_runtime_suite、およびjava_toolchainのルールを使っていましたが、私はjava_toolchainを設定することができますが、ホストとターゲットのJavaアーキテクチャーを個別に柔軟にすることはできません。バージョン。
Javaランチャースクリプトを修正し、JAVABINを "/ usr/bin/java"にハードコードするとすべてが機能します(例:GPRC "greeter server"が正しく応答します)。利用可能なセットアップを有することのオフ。私は、すべてを/ usr/bin/javaに渡すランチャーを提供することができることを認識していますが、私はBazelビルドの自己完結型の性質が好きであり、その構造の中で作業する方が好きです。
私は何が欠けていますか? BazelでJavaをクロスコンパイルするための正しい/予想されるアプローチは何ですか?
ハ!私はビルドの結果で--javabaseを呼び出すことも考えましたが、私はbazel呼び出しでそれを呼び出すとは思わなかった。ありがとう! – SterlingDragon