Main Content

Java パッケージの生成と Java アプリケーションのビルド

サポートされるプラットフォーム: Windows®、Linux®Mac

この例では、MATLAB® 関数から Java® パッケージを作成し、サンプル Java コードを生成する方法を説明します。

前提条件

  • MATLAB Compiler SDK™ と互換性のあるバージョンの Java がインストールされていることを確認します。サポートされている Java のバージョンについては、他の言語に対する MATLAB のインターフェイスを参照してください。

    インストール後における開発環境の構成の詳細については、Java パッケージの生成環境の構成を参照してください。

  • アプリケーションの実行には、エンド ユーザーによる MATLAB Runtime のインストールが必要です。詳細については、MATLAB Runtime のインストールと構成を参照してください。

    テスト目的で、MATLAB Runtime の代わりに MATLAB のインストールを使用することができます。

MATLAB での関数の作成

MATLAB で、パッケージ化対象の MATLAB コードを調べます。この例では、matlabroot\toolbox\javabuilder\Examples\MagicSquareExample\MagicDemoComp にある makesqr.m を開きます。

function y = makesqr(x)
y = magic(x);

MATLAB コマンド プロンプトで、makesqr(5) と入力します。

出力は 5 行 5 列の行列になります。

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

ライブラリ コンパイラ アプリを使用した Java パッケージの作成

ライブラリ コンパイラ アプリを使用して、関数を Java パッケージにコンパイルします。あるいは、プログラムによる方法で MATLAB コマンド ウィンドウから Java パッケージを作成する場合は、compiler.build.javaPackage を使用した Java パッケージの作成を参照してください。

  1. [MATLAB アプリ] タブで、[アプリ] セクションの右端にある矢印をクリックします。[アプリケーションのデプロイ] で、[ライブラリ コンパイラ] をクリックします。

    または、MATLAB コマンド プロンプトで以下を入力して、[ライブラリ コンパイラ] アプリを開きます。

    libraryCompiler

    Compiler tab with the Library Compiler app open

  2. ツールストリップの [タイプ] セクションで、[Java パッケージ] をクリックします。

    ライブラリ コンパイラ アプリのプロジェクト ウィンドウで、デプロイする MATLAB アプリケーションのファイルを指定します。

    1. ツールストリップの [エクスポートする関数] セクションで、Add exported function to the project をクリックします。

    2. [ファイルの追加] ウィンドウで、サンプルのフォルダーを参照し、パッケージ化する関数を選択します。[開く] をクリックします。

    エクスポートする関数ファイルのリストに関数が追加されます。同じアプリケーションに複数のファイルをパッケージ化するには、この手順を繰り返します。

    この例では、makesqr.m ファイルを選択します。

  3. ツールストリップの [パッケージ化オプション] セクションで次のオプションのいずれかを選択して、生成されるアプリケーションに MATLAB Runtime インストーラーを含めるかどうかを決定します。

    • ランタイムを Web からダウンロードMATLAB Runtime をダウンロードしてデプロイされた MATLAB アプリケーションと共にインストールするインストーラーを生成します。インストーラーのファイル名を指定できます。

    • ランタイムをパッケージに含めるMATLAB Runtime インストーラーを含むアプリケーションを生成します。インストーラーのファイル名を指定できます。

      メモ

      このオプションを初めて選択したときに、MATLAB Runtime インストーラーをダウンロードするように求めるメッセージが表示されます。

パッケージ設定の指定

次に、Java パッケージの名前を定義し、アプリケーションにビルドする .m ファイルのクラス マッピングを確認します。

  1. パッケージの名前を選択します。[ライブラリ名] フィールドに、パッケージの名前として makesqr が自動的に入力されます。同じ名前が、以下のパッケージ実装の手順全体で使用されます。

  2. makesqr.m で定義された関数が Class1 にマッピングされていることを確認します。

    Class Name section is defined as Class1

サンプル ドライバー ファイルの作成

プロジェクトの任意の MATLAB ファイルを使用して、サンプル Java ドライバー ファイルを生成できます。Java ドライバー ファイルはパッケージの作成に必須ではありませんが、MATLAB により生成された Java アプリケーションのコンパイルと実行で示すように、これらを使用して Java アプリケーションを実装することができます。

[サンプル] セクションで、[新規サンプルの作成] を選択して makesqr.m をクリックします。MATLAB ファイルが編集用に開きます。

% Sample script to demonstrate execution of function y = makesqr(x)
x = 0; % Initialize x here
y = makesqr(x);

x = 0x = 5 に変更し、ファイルを保存して、[ライブラリ コンパイラ] アプリに戻ります。

注意

目的の結果を出力するには MATLAB サンプル ファイルを編集する必要があります。生成されたターゲット言語のサンプル ファイルは、サンプル MATLAB ファイルと同じ入力と出力を使用します。

コンパイラにより、パッケージ化の際にこの MATLAB コードが Java コードに変換されます。詳細と制限については、サンプル ドライバー ファイルの作成を参照してください。

アプリケーションとその外観のカスタマイズ

ライブラリ コンパイラ アプリでは、インストーラーをカスタマイズし、アプリケーションをカスタマイズし、アプリケーションについて情報を追加することができます。

  • ライブラリ情報 — デプロイされるアプリケーションに関する情報。また、アプリケーション アイコンとスプラッシュ スクリーンを変更して、アプリケーションの外観をカスタマイズすることもできます。生成されるインストーラーはこの情報を使用して、インストールされるアプリケーションのメタデータを入力します。インストーラーのカスタマイズを参照してください。

  • 追加インストーラー オプション — 生成されるインストーラーの既定のインストール パスと、カスタム ロゴの選択。インストール パスの変更を参照してください。

  • ライブラリの実行に必要なファイル — 生成されるアプリケーションを実行するために必要な追加ファイル。これらのファイルは、生成されるアプリケーション インストーラーに含められます。コンパイラ プロジェクトの必須ファイルの管理を参照してください。

  • エンド ユーザー用にインストールされるファイル — アプリケーションと共にインストールされるファイル。

    アプリケーションと共にインストールするファイルの指定を参照してください。

Library Compiler app open with Samples section expanded

アプリケーションのパッケージ化

パッケージ化オプションの選択が終了したら、ライブラリ コンパイラのプロジェクトを保存し、パッケージ化されたアプリケーションを生成します。

  1. [パッケージ化] をクリックします。

    [プロジェクトを保存] ダイアログ ボックスで、プロジェクトを保存する場所を指定します。

  2. [パッケージ] ダイアログ ボックスで、[プロセスが完了したら出力フォルダーを開く] が選択されていることを確認します。

    パッケージ化プロセスが完了したら、ターゲット フォルダー内の生成された出力を調べます。

    • 3 つのフォルダー for_redistributionfor_redistribution_files_only、および for_testing が生成されます。

      これらのフォルダーに生成されるファイルの詳細については、MATLAB 関数のパッケージ化後に生成されるファイルを参照してください。

    • ログ ファイル PackagingLog.html にはパッケージ化の結果が含まれています。

compiler.build.javaPackage を使用した Java パッケージの作成

ライブラリ コンパイラ アプリの代わりに、プログラムによる方法を使用して Java パッケージを作成することができます。ライブラリ コンパイラを使用してパッケージが既に作成されている場合は、MATLAB により生成された Java アプリケーションのコンパイルと実行を参照してください。

  1. matlabroot\toolbox\javabuilder\Examples\MagicSquareExample\MagicDemoComp にある makesqr.m ファイルへのパスを保存します。

    appFile = fullfile(matlabroot,'toolbox','javabuilder','Examples', ...
        'MagicSquareExample','MagicDemoComp','makesqr.m');

  2. 以下のコードを makesqrSample1.m という名前のサンプル ファイルに保存します。

    x = 5;
    y = makesqr(x);

  3. 関数 compiler.build.javaPackage を使用して Java パッケージをビルドします。名前と値の引数を使用してサンプル ファイルを追加し、詳細な出力を有効にします。

    buildResults = compiler.build.javaPackage(appFile, ...
    'SampleGenerationFiles','makesqrSample1.m', ...
    'Verbose','on');

    compiler.build コマンドで名前と値の引数を使用して、追加オプションを指定できます。詳細については、compiler.build.javaPackage を参照してください。

    compiler.build.Results オブジェクト buildResults には、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報が含まれています。

    関数により、現在の作業ディレクトリの makesqrjavaPackage という名前のフォルダーに以下のファイルとフォルダーが生成されます。

    • classes — Java クラス ファイルとデプロイ可能なアーカイブ CTF ファイルが含まれるフォルダー。

    • doc — パッケージ内にあるすべてのクラスの HTML ドキュメンテーションが含まれるフォルダー。

    • example — Java ソース コード ファイルが含まれるフォルダー。

    • samples — Java サンプル ドライバー ファイル makesqrSample1.java が含まれるフォルダー。

    • GettingStarted.html — パッケージの統合に関する情報が含まれるファイル。

    • includedSupportPackages.txt — パッケージに含まれるすべてのサポート ファイルをリストしたテキスト ファイル。

    • makesqr.jar — Java アーカイブ ファイル。

    • mccExcludedFiles.log — アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、コンパイルでサポートされていない関数を参照してください。

    • readme.txt — デプロイの前提条件に関する情報と、デプロイ用にパッケージ化するファイルのリストが含まれるテキスト ファイル。

    • requiredMCRProducts.txtMATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。

    • unresolvedSymbols.txt — 未解決のシンボルに関する情報が含まれるテキスト ファイル。

    メモ

    生成されたパッケージに MATLAB Runtime やインストーラーは含まれていません。buildResults オブジェクトを使用してインストーラーを作成するには、compiler.package.installer を参照してください。

MATLAB により生成された Java アプリケーションのコンパイルと実行

Java パッケージの作成後、これを Java アプリケーションから呼び出すことができます。この例では、パッケージ化の際に生成されたサンプル Java コードを使用します。このサンプル Java アプリケーション コードは、独自のアプリケーションを記述するためのガイドとして使用できます。

  1. 生成された Java ファイル makesqrSample1.javasamples フォルダーからコピーして、makesqr.jar パッケージを含むフォルダーに貼り付けます。ライブラリ コンパイラを使用した場合、makesqr.jarfor_testing フォルダー内にあります。

  2. システム コマンド プロンプトで、makesqrSample1.javamakesqr.jar が含まれているフォルダーに移動します。

  3. javac を使用してアプリケーションをコンパイルします。引数 classpath に、com.mathworks.toolbox.javabuilder パッケージが含まれる javabuilder.jar へのパス、および Java パッケージ makesqr.jar を指定します。

    • Windows の場合、次を入力します。

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar makesqrSample1.java
    • UNIX® の場合、次を入力します。

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./makesqr.jar makesqrSample1.java

      matlabroot は、MATLAB または MATLAB Runtime のインストール フォルダーへのパスに置き換えてください。たとえば、Windows でのパスは C:\Program Files\MATLAB\R2023b のようになります。

      メモ

      makesqr.jar または makesqrSample1.java が現在のディレクトリでない場合は、コマンドで絶対パスまたは相対パスを指定します。パスにスペースが含まれている場合は、二重引用符で囲みます。

  4. java を使用してアプリケーションを実行します。

    • Windows の場合、次を入力します。

      java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\makesqr.jar makesqrSample1
    • UNIX の場合、次を入力します。

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./makesqr.jar makesqrSample1

      メモ

      クラス パスの先頭にあるピリオド (.) は、現在の作業ディレクトリを表します。パスにない場合、Java がクラスを読み込めないというメッセージが表示されます。

    このアプリケーションはサンプルの MATLAB コードと同じ出力を返します。

        17    24     1     8    15
        23     5     7    14    16
         4     6    13    20    22
        10    12    19    21     3
        11    18    25     2     9

参考

| | |

関連するトピック