我使用的是外部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的输入参数不要紧,它总是会挂,所以我只给'如本例输入。