Main Content

構造体配列を使用した Java 電話帳アプリケーションの作成

この例では、MATLAB® 関数を呼び出して構造体配列を変更する Java® パッケージを作成し、電話帳アプリケーションを実装します。

ファイル

MATLAB 関数makephone.m
MATLAB 関数の場所matlabroot\toolbox\javabuilder\Examples\PhoneExample\PhoneDemoComp\
Java コードの場所matlabroot\toolbox\javabuilder\Examples\PhoneExample\PhoneDemoJavaApp\getphone.java

手順

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

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

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

  2. 関数 makephone.m を確認します。

    function book = makephone(friends)
    book = friends;
    for i = 1:numel(friends)
        numberStr = num2str(book(i).phone);
        book(i).external = ['(508) 555-' numberStr];
    end

    この関数は、構造体配列を入力として受け取り、それを変更してから、変更後の配列を出力として提供します。

  3. 次の情報を使用して、ライブラリ コンパイラ アプリまたは compiler.build.javaPackage で Java パッケージをビルドします。

    フィールド
    ライブラリ名phonebookdemo
    クラス名phonebook
    コンパイルするファイルmakephone.m

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

    buildResults = compiler.build.javaPackage('makephone.m', ...
    'PackageName','phonebookdemo', ...
    'ClassName','phonebook');

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

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

    この例のサンプル アプリケーションは PhoneExample\PhoneDemoJavaApp\getphone.java にあります。

     getphone.java

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

    • 例の電話帳データを表す構造体配列を MWStructArray を使用して作成する。

    • プロッター クラスを thePhonebook オブジェクトとしてインスタンス化する:

      thePhonebook = new phonebook();

    • makephone メソッドを呼び出し、追加フィールドを追加することで構造体の変更コピーを作成する:

      result = thePhonebook.makephone(1, friends);

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

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

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

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

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

      copyfile(fullfile('..','PhoneDemoComp','phonebookdemo','for_testing','phonebookdemo.jar'))
  7. コマンド プロンプト ウィンドウで、cd を使用して PhoneDemoJavaApp フォルダーに移動します。

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

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

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

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./phonebookdemo.jar getphone.java

    matlabroot は、MATLAB または MATLAB Runtime のインストール フォルダーへのパスに置き換えてください。たとえば、Linux® でのパスは /usr/local/MATLAB/R2023b のようになります。

  9. getphone アプリケーションを実行します。

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

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

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./phonebookdemo.jar getphone

      メモ

      アプリケーションを Mac 64 ビット プラットフォームで実行する場合は、Java コマンドに -d64 フラグを追加する必要があります。

    getphone プログラムにより、次の出力が表示されます。

    Friends: 
    2x2 struct array with fields:
        name
        phone
    Result: 
    2x2 struct array with fields:
        name
        phone
        external
    Result record 2:
    Mary Smith
    3912
    (508) 555-3912
    
    Entire structure:
    Number of Elements: 4
    Dimensions: 2-by-2
    Number of Fields: 3
    Standard MATLAB view:
    2x2 struct array with fields:
        name
        phone
        external
    Walking structure:
    Element 1
       name: Jordan Robert
       phone: 3386
       external: (508) 555-3386
    Element 2
       name: Mary Smith
       phone: 3912
       external: (508) 555-3912
    Element 3
       name: Stacy Flora
       phone: 3238
       external: (508) 555-3238
    Element 4
       name: Harry Alpert
       phone: 3077
       external: (508) 555-3077
    

参考

|

関連するトピック