成功結果を書き込むファイルパス。エラー結果を書き込むファイルパス。イベントデータのJSON、成功・エラー結果を書き込むファイルのパスを渡しています。アプリケーションを作ります。アプリケーションも作れます。変換などの機能もあるので何かと便利です。用のひな形を作って作業を始めます。ライブラリをバイナリ化するための設定などを盛り込んでくれます。アプリケーションを作っていきます。コマンドライン引数の解析やチェックを行う便利なライブラリです。一部を抜粋して解説します。関数の処理本体はコンポーネントとして実装します。前述の関数で実装したものと同じ内容です。関数、コマンドライン引数の取得、上記コンポーネントの実行はコマンドクラスで行います。成功データをファイルに書き込む。付与したフィールドに実行時に代入されます。色々な設定ができるようになっています。4つのフィールドを用意します。インジェクションできます。定義済みのコンポーネントが使えます。メソッドが実行されます。化してファイルに書き出しています。アプリケーションとして実行してみます。指定したファイルに結果が書き込まれました。使ってバイナリを作ります。コンパイルを行ってバイナリを生成します。イメージを使ってバイナリ化を実施しました。どんなプログラムでもバイナリ化できるわけではなく、制約や準備作業が必要なものがあります。参考資料を以下に掲載します。https://www.graalvm.org/docs/reference-manual/aot-compilation/https://github.com/oracle/graal/blob/master/substratevm/REFLECTION.mdhttps://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md制約の最たるものはリフレクションの使用です。リフレクションを使用したコードは、そのままではバイナリ化できたとしても実行時エラーになります。リフレクション定義ファイル(JSON)に書き出しておく必要があります。リフレクション定義ファイルの生成を行うユーティリティを用意してくれています。アプリケーション向けに修正したものは以下の通りです。