我的 Java 程序如何连续使用 MATLAB 而不必每次都建立连接?
How can my Java program use MATLAB continuously without having to establish a connection everytime?
我通过 matlabcontrol.jar 包在 Java Eclipse 项目上有一个 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 函数时都不必重新连接 MATLAB?
如有任何帮助,我们将不胜感激。
谢谢!
我不是 JAVA 方面的专家,所以我将用简单的语言给出我的解决方案,您可以将其翻译成 JAVA 世界。 :)
- 创建一个 JAVA 单例 class 负责处理连接。
- 提供一个 public 静态只读 属性 指向单例对象。
- 现在使用单例对象调用 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();
}
}
我通过 matlabcontrol.jar 包在 Java Eclipse 项目上有一个 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 函数时都不必重新连接 MATLAB?
如有任何帮助,我们将不胜感激。
谢谢!
我不是 JAVA 方面的专家,所以我将用简单的语言给出我的解决方案,您可以将其翻译成 JAVA 世界。 :)
- 创建一个 JAVA 单例 class 负责处理连接。
- 提供一个 public 静态只读 属性 指向单例对象。
- 现在使用单例对象调用 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();
}
}