どのようにjavaからmatlabのセッションを開き、MATLABのスクリプトを実行する

私は入力マットファイルを取り、出力ファイルを生成するmatlabスクリプトを持っています。
現在、私はこのスクリプトを実行できるシェルスクリプトを持っています。

私は ProcessBuilder
クラスを使用してこのスクリプトをJavaから実行していますが、すべてがうまくいきます。
私は非常に頻繁にJavaからmatlabスクリプトの実行を実行する必要があり、スクリプトが実行されるたびにmcrプロセスが作成され、スクリプトが実行され、mcrが終了します。

私はMCRのプロセスを開いて、私は同じセッションで複数回スクリプトを実行できるように、同じプロセスが生きているように、javaに向かって開いているmatlabセッションを持っているのが好きです。

私はmatlabcontrolがこれに適しているようだ。 MCRの場所とLD_LIBRARY_PATHを使用して
MatlabProxyFactory を構成する方法
これは私のシェルスクリプトで設定して、同じセッションでスクリプトを実行していますか?

私はまた、MATLAB JA
Builderのツールを見つけましたが、私は現時点でこれをFreeではないものとして使用することはできません。

ありがとう!

ベストアンサー

matlabcontrol
を使用している場合は、シェルスクリプトが必要ないと思うので、実行したいm-ファイルの名前を教えてください。シェルスクリプトと
ProcessBuilder
を併用したい場合は、プロセスを一度開始して入力ストリームへの参照を保持する必要があります。コマンドを実行するには、そのストリームを書きます。また、Matlabの出力ストリームとエラーストリームを空にするためにスレッドを生かしておく必要があります。そうしないと、Matlabがハングアップします。このようにしたい場合は、このプロジェクトのソースを調べることをおすすめします〜への貢献者です)。興味のあるクラスはRCallerです。多かれ少なかれ同じことをしますが、それはRを呼び出すのではなく、MATLABです。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です