MATLAB挂起,当我尝试使用java包jdde,但​​仅限于在系统重新启动后第一次(MATLAB

2019-09-24 03:52发布

我使用的是外部Java包jdde在MATLAB。 请注意,下面的例子中,自带的包DLL文件需要在MATLAB librarypath。 做到这一点的方法取决于你的MATLAB版本是不同的。

在MATLAB使用jdde后,我重新启动计算机或注销我在Windows /登录工作正常,但首次。 当我的计算机重新启动后运行首次下面的代码,MATLAB将留在繁忙模式永远(用0%CPU)。 发生这种情况时,我杀在任务管理器的进程MATLAB和重启MATLAB。 当我再次运行相同的代码,它会立即执行(不保持忙碌永远)。

javaaddpath('C:\pretty-tools-JDDE-1.0.2.jar')
a =  com.pretty_tools.dde.client.DDEClientConversation;
a.connect('','');

概括起来,上面的代码将导致MATLAB保持忙碌永远我第一次系统重启或注销用户/登录后运行它。 当我杀死MATLAB程序后,再次运行它,它会完全正常工作(不挂断MATLAB)。

我已经看到了在不同的计算机此行为,并在MATLAB(2010年和2012年)的不同的版本。 我使用的是Windows 7 64位系统。

在该代码示例中,a.connect命令是使MATLAB保持忙碌永远之一。 在try / catch块把这个命令不会帮助,因为a.connect不会导致错误,它只是从来不会继续。

我不知道如果这个问题是通过MATLAB或Java包造成的。 任何想法如何摆脱这种行为将非常感激。

注:a.connect的输入参数不要紧,它总是会挂,所以我只给'如本例输入。

Answer 1:

代码挂起没有DDE初始化()方法哪位知道原因。 新的版本JDDE-2.0.3包含的办法解决这个问题。



Answer 2:

尝试运行其自己的附加路径命令,以便有一两秒钟就试图执行的代码依赖于罐子之前。 我发现这往往是与具有在Matlab罐子做间歇性的问题的问题



Answer 3:

切换到经典模式开始好让你将摆脱的那个。



文章来源: MATLAB hangs when I try to use the java package jdde, but only for the first time after a system reboot