我有一个具有" 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主函数的对象。