gpt4 book ai didi

java - MATLAB 代理无法在 180000 毫秒内创建

转载 作者:行者123 更新时间:2023-12-04 05:53:31 28 4
gpt4 key购买 nike

我正在使用 matlabcontrol-4.0.0.jar 库从 Java 调用 Matlab。这在 Ubuntu 11.10、Matlab r2011b 和 Java 版本“1.6.0_23”上。

尝试运行这个简单的程序时:

public static void main(String[] args) throws MatlabConnectionException,
MatlabInvocationException {

//Create a proxy, which we will use to control MATLAB
MatlabProxyFactory factory = new MatlabProxyFactory(options);
MatlabProxy proxy = factory.getProxy();

//Display 'hello world' just like when using the demo
proxy.eval("disp('hello world')");

//Disconnect the proxy from MATLAB
proxy.disconnect();
}

在出现 Matlab 启动屏幕(这很好)后,我得到了一个超时:

Exception in thread "main" matlabcontrol.MatlabConnectionException: MATLAB proxy could not be created in 180000 milliseconds at matlabcontrol.RemoteMatlabProxyFactory.getProxy(RemoteMatlabProxyFactory.java:158) at matlabcontrol.MatlabProxyFactory.getProxy(MatlabProxyFactory.java:81) at Main.main(Main.java:15)



我到处寻找,包括stackoverflow提供的所有提示,但似乎没有什么适合我遇到的问题

*更新*

我不想提我已经尝试过 Joshua Kaplan 描述的场景(谢谢!)。这似乎是 我的情况没有帮助,这意味着它只是一直在等待。有人可以详细说明java和matlab代理之间的通信协议(protocol)吗?
-> 这也可能是不兼容的问题,我已经在提供资源的网站上发布了,到目前为止还没有收到任何答复...

*结束更新*

所以,你们中的任何一个提示从哪里开始寻找,那就太好了
谢谢

最佳答案

getProxy()方法是一个阻塞操作,默认超时为 3 分钟(或 180 秒或 180000 毫秒)。对于大多数人的机器来说足够长的时间,如果在这段时间内没有建立连接,那么就会出现问题。但是,可以通过创建 MatlabProxyFactoryOptions 的实例来更改此超时。这是通过使用 MatlabProxyFactoryOptions.Builder 来完成的. MatlabProxyFactoryOptions您创建的实例被传递到 MatlabProxyFactory 's constructor .这是一个 5 分钟超时的示例:

MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()
.setProxyTimeout(300000L)
.build();
MatlabProxyFactory factory = new MatlabProxyFactory(options);
MatlabProxy proxy = factory.getProxy();

或者,您可以请求一个代理,它是一个没有超时的非阻塞操作。创建代理后,它将传递给提供的回调。例子:
MatlabProxyFactory factory = new MatlabProxyFactory();
factory.requestProxy(new MatlabProxyFactory.RequestCallback()
{
public void proxyCreated(MatlabProxy proxy)
{
//TODO: Make use of the proxy
}
});

关于java - MATLAB 代理无法在 180000 毫秒内创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789573/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com