構造体配列を使用した Java 電話帳アプリケーションの作成
この例では、MATLAB® 関数を呼び出して構造体配列を変更する Java® パッケージを作成し、電話帳アプリケーションを実装します。
ファイル
MATLAB 関数 | makephone.m |
MATLAB 関数の場所 |
|
Java コードの場所 |
|
手順
MATLAB に付属している
PhoneExample
フォルダーを作業フォルダーにコピーします。copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','PhoneExample'),'PhoneExample')
MATLAB コマンド プロンプトで、作業フォルダー内の新しい
PhoneExample\PhoneDemoComp
サブフォルダーに移動します。関数
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
この関数は、構造体配列を入力として受け取り、それを変更してから、変更後の配列を出力として提供します。
次の情報を使用して、ライブラリ コンパイラ アプリまたは
compiler.build.javaPackage
で Java パッケージをビルドします。フィールド 値 ライブラリ名 phonebookdemo
クラス名 phonebook
コンパイルするファイル makephone.m
たとえば、
compiler.build.javaPackage
を使用している場合は、以下を入力します。buildResults = compiler.build.javaPackage('makephone.m', ... 'PackageName','phonebookdemo', ... 'ClassName','phonebook');
詳細については、Java パッケージの生成と Java アプリケーションのビルドの手順を参照してください。
MATLAB 関数にアクセスするアプリケーションのソース コードを記述します。
この例のサンプル アプリケーションは
PhoneExample\PhoneDemoJavaApp\getphone.java
にあります。プログラムにより次が実行されます。
例の電話帳データを表す構造体配列を
MWStructArray
を使用して作成する。プロッター クラスを
thePhonebook
オブジェクトとしてインスタンス化する:thePhonebook = new phonebook();
makephone
メソッドを呼び出し、追加フィールドを追加することで構造体の変更コピーを作成する:result = thePhonebook.makephone(1, friends);
try-catch
ブロックを使用して例外をキャッチして処理する。
MATLAB で、
PhoneExample\PhoneDemoJavaApp
フォルダーに移動します。生成された
phonebookdemo.jar
パッケージをこのフォルダーにコピーします。compiler.build.javaPackage
を使用した場合は、以下を入力します。copyfile(fullfile('..','PhoneDemoComp','phonebookdemojavaPackage','phonebookdemo.jar'))
ライブラリ コンパイラを使用した場合は、以下を入力します。
copyfile(fullfile('..','PhoneDemoComp','phonebookdemo','for_testing','phonebookdemo.jar'))
コマンド プロンプト ウィンドウで、
cd
を使用してPhoneDemoJavaApp
フォルダーに移動します。javac
を使用してgetphone
アプリケーションをコンパイルします。Windows® の場合、次を入力します。
javac -classpath "
matlabroot
\toolbox\javabuilder\jar\javabuilder.jar";.\phonebookdemo.jar getphone.javaUNIX® の場合、次を入力します。
javac -classpath "
matlabroot
/toolbox/javabuilder/jar/javabuilder.jar":./phonebookdemo.jar getphone.java
は、MATLAB または MATLAB Runtime のインストール フォルダーへのパスに置き換えてください。たとえば、Linux® でのパスはmatlabroot
/usr/local/MATLAB/R2023b
のようになります。getphone
アプリケーションを実行します。Windows の場合、次を入力します。
java -classpath .;"
matlabroot
\toolbox\javabuilder\jar\javabuilder.jar";.\phonebookdemo.jar getphoneUNIX の場合、次を入力します。
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
参考
compiler.build.javaPackage
| ライブラリ コンパイラ