Main Content

Java アプリケーションへの単純な MATLAB 関数の統合

この例では、Java® アプリケーションで魔方陣を生成する MATLAB® メソッドを呼び出す方法について説明します。

ファイル

MATLAB 関数の場所matlabroot\toolbox\javabuilder\Examples\MagicSquareExample\MagicDemoComp\makesqr.m
Java コードの場所matlabroot\toolbox\javabuilder\Examples\MagicSquareExample\MagicDemoJavaApp\getmagic.java

手順

  1. MATLAB に付属している MagicSquareExample フォルダーを作業フォルダーにコピーします。

    copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','MagicSquareExample'))

    MATLAB コマンド プロンプトで、作業フォルダー内の新しい MagicSquareExample\MagicDemoComp サブフォルダーに移動します。

  2. 関数 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
  3. ライブラリ コンパイラ アプリまたは compiler.build.javaPackage を使用して makesqr.m をカプセル化する Java パッケージを作成します。

    以下の情報をプロジェクトに使用します。

    パッケージ名magicsquare
    クラス名magic
    コンパイルするファイルmakesqr.m

    たとえば、compiler.build.javaPackage を使用している場合は、以下を入力します。

    buildResults = compiler.build.javaPackage('makesqr.m', ...
        'PackageName','magicsquare', ...
        'ClassName','magic');

    詳細については、Java パッケージの生成と Java アプリケーションのビルドの手順を参照してください。

  4. MATLAB 関数にアクセスする Java アプリケーションのソース コードを作成します。

    この例のサンプル アプリケーションは MagicSquareExample\MagicDemoJavaApp\getmagic.java にあります。

     getmagic.java

    プログラムにより次が実行されます。

    • 入力データを保存する MWNumericArray 配列を作成する

    • magic オブジェクトをインスタンス化する

    • makesqr メソッドを呼び出す (最初のパラメーターは出力引数の数を指定し、以降のパラメーターは入力引数として順番に関数に渡される)

    • try-catch ブロックを使用して例外を処理する

    • MWArray メソッドを使用してネイティブ リソースを解放する

  5. MATLAB で、MagicDemoJavaApp フォルダーに移動します。

  6. 生成された magicsquare.jar パッケージをこのフォルダーにコピーします。

    • compiler.build.javaPackage を使用した場合は、以下を入力します。

      copyfile(fullfile('..','MagicDemoComp','magicsquarejavaPackage','magicsquare.jar'))
    • ライブラリ コンパイラを使用した場合は、以下を入力します。

      copyfile(fullfile('..','MagicDemoComp','magicsquare','for_testing','magicsquare.jar'))
  7. システム コマンド ウィンドウで、PlotDemoJavaApp フォルダーに移動します。

  8. javac を使用して Java アプリケーションをコンパイルします。

    • Windows® では、次のコマンドを実行します。

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\magicsquare.jar getmagic.java
    • UNIX® では、次のコマンドを実行します。

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./magicsquare.jar getmagic.java

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

    詳細については、MATLAB により生成された Java アプリケーションのコンパイルと実行を参照してください。

  9. システムのコマンド プロンプトからアプリケーションを実行します。

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

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

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./magicsquare.jar getmagic 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
  10. この例から発展させるには、以下のようにします。

    • 生成されたアプリケーションを別のコンピューターで実行してみる。

    • compiler.package.installer を使用してパッケージ用のインストーラーをビルドしてみる。

    • 複数の関数で構成されたパッケージを統合してみる。

参考

| | | |

関連するトピック