从 Matlab 调用 "main" Java 方法并等待完成



我有一个具有" main()"方法的Java类Matlabsmac。

我想从MATLAB调用此方法。但是,每当我这样做时,MATLAB脚本都会继续执行,并且不会等待Main()方法完成执行。

我试图以多种方式调用该方法,不幸的是,结果相同

matlabSMAC.main(args)
javaMethod('main','matlabSMAC',args)
javaMethodMT('main','matlabSMAC',args)

问题:有没有办法强迫MATLAB等待在退出/完成/继续执行脚本之前执行该方法?

在文档的下一页末尾,对此有一个小评论。但是,它没有指出任何解决方案:

https://de.mathworks.com/help/matlab/matlab/matlab_external/invoking-methods-on-on-java-objects.html

谢谢!

matlab确实等待调用的java方法在继续之前完成。

您可能会看到该main方法启动其他线程然后返回的效果。(这是任何Java GUI程序的正常设计。)

您的main()做什么?您可能需要matlabSMAC类来提供另一种阻止其所有工作线程和/或进程完成的方法。

可能是您可以在matlab中使用函数waitfor。

waitfor在删除或关闭对象之前停止执行MATLAB脚本。但是在此之前,您必须创建一个引用Java主函数的对象。

最新更新