呼叫"主要"来自Matlab的Java方法等待完成

时间:2016-12-28 13:18:58

标签: java matlab main

我有一个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

谢谢!

2 个答案:

答案 0 :(得分:1)

Matlab会在继续之前等待调用的Java方法完成。

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

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

答案 1 :(得分:0)

可以在matlab中使用函数waitfor

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