当我尝试使用java包jdde时,MATLAB挂起,但只是在系统重新启动后第一次挂起
我在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('','');
总而言之,上面的代码将导致MATLAB在系统重新启动或用户注销/登录后第一次运行时永远保持忙碌状态。当我在杀死MATLAB进程后再次运行它时,它将工作得很好(不会挂断MATLAB)。
我在不同的计算机和不同版本的 MATLAB(2010 和 2012)中看到了这种行为。我使用的是 Windows 7 x64。
在代码示例中,a.connect 命令是导致 MATLAB 永远保持忙碌的命令。将此命令放在 try/catch 块中无济于事,因为 a.connect 不会导致错误,它永远不会继续。
我不确定这个问题是由MATLAB还是由java包引起的。任何如何摆脱这种行为的想法将不胜感激。
注意:a.connect的输入参数无关紧要,它总是会挂起,所以我在此示例中只是给出了''作为输入。