2016-07-15 4 views
0

matlabcontrol.jarパッケージを使用してJava Eclipseプロジェクトで実行されているMATLABスクリプトがあります。私のJavaプログラムは毎回接続を確立せずにMATLABを連続して使用できますか?

私はこの問題は、私はMATLABスクリプトは、シミュレーションの実行時間にわたって数回実行していることがある、次のセットアップ

MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder() 
      .setUsePreviouslyControlledSession(true) 
      .setHidden(true) 
      .setMatlabLocation(null).build(); 

MatlabProxyFactory factory = new MatlabProxyFactory(options); 

MatlabProxy proxy = factory.getProxy(); 

//some code invoking the proxy.eval() method 

を持っています。 MATLAB関数を使用するたびにJavaがMATLABに再接続する必要がないようにするにはどうすればよいですか?

ご協力いただければ幸いです。

ありがとうございます!

+1

あなたはMATLABにするたびに再接続する必要はありません。 'proxy'オブジェクトを再利用するだけです – Suever

答えて

1

私はJAVAの専門家ではないので、私はあなたがJAVAの世界に翻訳できる簡単な言葉で私の解決策を与えます。 :)

  1. 接続の処理を担当するJAVAシングルトンクラスを作成します。
  2. シングルトンオブジェクトを指す静的な読み取り専用プロパティを提供します。
  3. 今度は、singletonオブジェクトを使用してMATLAB関数を呼び出します。

例えば:

public class MATLABConnector 
{ 
     private MATLABConnector con=new MATLABConnector(); 
     MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder() 
     .setUsePreviouslyControlledSession(true) 
     .setHidden(true) 
     .setMatlabLocation(null).build(); 

     MatlabProxyFactory factory = new MatlabProxyFactory(options); 

     private MATLABConnector() 
     { 
      // Do basic initializations. 
     }   

     private boolean checkConnecionStatus(); 
     private boolean establishConnection(); 
     public static MATLABProxy getProxy() 
     { 
       if(!con.checkConnectionStatus()) 
        con.establishConnection(); 
       return con.factory.getProxy(); 
     } 
    } 
関連する問題