我有一个Java类matlabSMAC,它有一个" main()"方法
我想从Matlab调用这个方法。但是,每当我这样做时,matlab脚本会继续执行,并且不会等待main()方法完成执行。
我试图以多种方式调用该方法,遗憾的是结果相同
matlabSMAC.main(args)
javaMethod('main','matlabSMAC',args)
javaMethodMT('main','matlabSMAC',args)
问题: 有没有办法强制matlab在退出/完成/继续执行脚本之前等待方法的执行?
在文档的下一页末尾有一个关于此的小注释。但是,它没有指出任何解决方案:
https://de.mathworks.com/help/matlab/matlab_external/invoking-methods-on-java-objects.html
谢谢!
答案 0 :(得分:1)
Matlab会在继续之前等待调用的Java方法完成。
您可能会看到main
方法启动其他线程然后返回的效果。 (这是任何Java GUI程序的正常设计。)
您的main()
做了什么?您可能需要matlabSMAC
类来提供阻止所有工作线程和/或进程完成的其他方法。
答案 1 :(得分:0)
可以在matlab中使用函数waitfor。
waitfor
在删除或关闭对象之前停止执行matlab脚本。但在此之前,您必须创建一个引用java main函数的对象。