MATLABからjavaクラス、jarファイルを扱う

ちょっと便利そうだな-と思い、MATLABからjavaクラスを呼び出してみたので方法をメモしておきます。

参考:http://www.mathworks.co.jp/jp/help/matlab/matlab_external/creating-and-using-java-objects.html

MATLAB-高度なソフトウェア開発-外部プログラミング言語インターフェイス-Java ライブラリ-javaオブジェクトの作成と使用

http://lunran.sakura.ne.jp/wordpress/category/matlab/

Matlab - Lunran Studio

javaクラスをmatlabが対応しているバージョンでビルドしておきます。

以下のコマンドでmatlabが対応しているjavaバージョンを調べます。

version -java

その後、eclipseのプロジェクト→プロパティ→Java Build Path→ライブラリー→JREシステム・ライブラリー

の実行環境を、上記バージョンに変更してビルドしておきます。

②コンストラクタを初期化メソッドにしておきます。

javaクラスにコンストラクタがあると、うちの環境では以下の様なエラーを吐いて使えなかったので、

No constructor ClassName with matching signature found

コンストラクタは初期化メソッドに代替しておきます。

private void ClassName()

{

  ...

}

③.classファイルのあるパスをダイナミッククラスパスに追加します。(jarファイルも同様)

javaclasspath('C:\workspace\ClassTest\bin\');

以下のコマンドでダイナミッククラスパスに追加されたかを確認しておきます。

javaclasspath

④使用例1:クラスをインスタンス化してみます。

instanceName = javaObject('ClassName');

以下の方法でもOKです。

instanceName = ClassName;

④使用例2:クラスのメソッドを使用してみます。

return_value = javaMethod('methodName', instanceName, arg1, arg2, arg3);

以下の方法でもOKです。

return_value = instanceName.methodName(arg1, arg2, arg3);

これでjavaクラスもMATLABで使いまわせるようになりました。