我不确定这是否有效:您可以让计时器检查Java.exec调用的过程是否已经被列出:
%[未经测试的代码!]
runtime = java.lang.runtime.getRuntime();
proc = runtime.exec(“您的外部功能”);
TIMERH =计时器('timerfcn',{@checkprocesscb,'查看'},,...
'stopfcn',{@checkprocesscb,'停止'},,...
'startDelay',10,...
“ busymode',,,,'降低',,,,...
'executionMode',,,,“固定空间”,,,,...
'时期',10,...
'用户数据',Proc);
开始(Timerh);
暂停(100);
停止(Timerh);%也杀死了该过程
功能CheckProcessCB(Timerh,EventData,CMD)
proc = timerh.userdata;
转变CMD
案子'查看'
尝试
rc = proc.exitValue();
fprintf('外部功能已退出:\ n');
DSIP(RC)
抓住%流程仍在运行
结尾
案子'停止'
fprintf(2,“停止外部进程\ n”);
proc.destroy();
结尾
结尾
推动浪费了一些时间,但是每10秒钟打电话一次应该是公平的