- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用外部 java 包 jdde在 MATLAB 中。请注意,对于以下示例,软件包附带的 DLL 文件需要位于 MATLAB librarypath 上。执行此操作的方法因您的 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 block 中不会有帮助,因为 a.connect 不会导致错误,它只是永远不会继续。
我不确定这个问题是MATLAB的问题还是java包的问题。任何关于如何摆脱这种行为的想法都将不胜感激。
注意:a.connect 的输入参数无关紧要,它总是会挂起,所以我在这个例子中只给出了 '' 作为输入。
最佳答案
代码在 DdeInitialize() 方法中无故挂起。新版本 JDDE-2.0.3 包含解决此问题的方法。
关于java - 当我尝试使用 java 包 jdde 时 MATLAB 挂起,但只是在系统重新启动后第一次挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12911160/
更新:该问题已在 MathWorks 的帮助下得到解决。我已在下面发布了答案。 我需要从 Matlab 控制一个程序 (Zemax)。不幸的是,Zemax 只支持 DDE 进行此类控制,Matlab
我想在 Java 中使用 DDE,经过一番研究后我决定使用 http://jdde.pretty-tools.com/ 我的这个项目的编程平台是 NetBeans。 但是,我遇到了一个小问题。我已经按
我正在使用外部 java 包 jdde在 MATLAB 中。请注意,对于以下示例,软件包附带的 DLL 文件需要位于 MATLAB librarypath 上。执行此操作的方法因您的 MATLAB 版
我是一名优秀的程序员,十分优秀!