場合によっては、JavaとFlexの統合は難しいといえる。JavaベースのコンパイラAPI(ブログ・英語)を備えたFlex 3のリリースで、Adobeは作業の効率化を目指している。このAPIは、JavaアプリケーションからのSWFおよびSWCファイルをコンパイルさせ、 mxmlcおよびcompcのコマンド行ツールと同じオプションをサポートする。
基本的な概念は、Flex Applicationオブジェクトを作成しているJavaデベロッパに依存する。これらのオブジェクトはFlexアプリケーションを表し、ビルドされ、mxmlの出力や構築と同様に設定も行う。
Application application = new Application(new File("../apps/TestApp.mxml"));
application.setOutput(new File("../apps/TestApp.swf"));
long result = application.build(true);
Flex Java API の主な特徴は以下の通りである。
-
レポートを生成し、コンパイル過程の進捗やログ、およびコンパイル中のアプリケーション、ライブラリ、またはプロジェクトについてのレポートなどの情報を提供する。
-
変更された仮想ファイルのみを再コンパイルするので、アプリケーションにあるすべてのファイルというわけではないため、さらに効率的な増分コンパイルを行う。
-
ランタイムにアプリケーションおよびライブラリーソースファイルを作成し、これらのファイルをアプリケーションやライブラリーにコンパイルする機能。
-
Flexアプリケーションをメモリに作成し、MXMLファイルをディスク上に置かずに、それらをSWFファイルにコンパイルする。
Flexアプリケーションのビルドが必要なJavaデベロッパを手助けするツールがすでに存在する。Antを使用した複雑なFlexプロジェクトを構築する一連のテンプレートである、Antennaeがかなり前から利用可能になっている。また、mxmlcおよびcompcをベースにして、FlexをJavaプロジェクトに統合する別の方法を、Antennaeがデベロッパに提供している。
Flex 3 JavaベースのコンパイラAPIについては、ここを参照。