샘플 실행 구성 (주로 Ant 플러그인에서 제공하는 구성)을 살펴보면 실행시 프로세스/디버그 대상에 구현 된 org.eclipse.debug.core.model.ITerminate
인터페이스가 있습니다. AntLaunchDelegate
클래스
DebugPlugin.getDefault().fireDebugEventSet(
new DebugEvent[] {new DebugEvent(this, DebugEvent.TERMINATE)});
샘플 코드 :
org.eclipse.debug.core.IDebugEventSetListener
는 다음 문을 호출하여 트리거 종료 이벤트를 처리하도록 등록 만약 내가 올바르게 기억
final boolean[] terminated = new boolean[1];
terminated[0] = launch.isTerminated();
IDebugEventSetListener listener = new IDebugEventSetListener() {
public void handleDebugEvents(DebugEvent[] events) {
for (int i = 0; i < events.length; i++) {
DebugEvent event = events[i];
for (int j = 0, numProcesses = processes.length; j < numProcesses; j++) {
if (event.getSource() == processes[j]
&& event.getKind() == DebugEvent.TERMINATE) {
terminated[0] = true;
break;
}
}
}
}
};
DebugPlugin.getDefault().addDebugEventListener(listener);
monitor
.subTask(AntLaunchConfigurationMessages.AntLaunchDelegate_28);
while (!monitor.isCanceled() && !terminated[0]) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
}
}
DebugPlugin.getDefault().removeDebugEventListener(listener);
시작이 완료되었음을 알리는 IProgressMonitor가 있습니까? monitor.done() –