use*_*360 18 java dll matlab jar dde
我在MATLAB中使用外部java包jdde.请注意,对于以下示例,程序包附带的DLL文件需要位于MATLAB库路径中.执行此操作的方法因您的MATLAB版本而异.
在MATLAB中使用jdde工作正常,除了我重新启动计算机或在Windows中注销/登录后的第一次.当我在计算机重启后第一次运行以下代码时,MATLAB将永远保持繁忙模式(CPU为0%).发生这种情况时,我会在任务管理器中终止MATLAB进程并重新启动MATLAB.当我再次运行相同的代码时,它将立即执行(不会永远保持忙碌).
javaaddpath('C:\pretty-tools-JDDE-1.0.2.jar')
a = com.pretty_tools.dde.client.DDEClientConversation;
a.connect('','');
Run Code Online (Sandbox Code Playgroud)
总结一下,上面的代码将导致MATLAB在系统重启或用户注销/登录后第一次运行它时永远保持忙碌状态.当我在杀死MATLAB过程后再次运行它时,它将完美地工作(不要挂起MATLAB).
我在不同的计算机上以及不同版本的MATLAB(2010和2012)中看到过这种行为.我使用的是Windows 7 x64.
在代码示例中,a.connect命令是导致MATLAB永远保持忙碌的命令.将此命令放在try/catch块中无济于事,因为a.connect不会导致错误,它永远不会继续.
我不确定这个问题是由MATLAB还是java包引起的.任何想法如何摆脱这种行为将不胜感激.
注意:a.connect的输入参数无关紧要,它将始终挂起,所以我在这个例子中只给了''作为输入.