Eclipse で動的 IProject を作成しています。この IProject は、Eclipse の「JAR アーカイブを使用した新しいプラグイン」プロジェクトのように機能します。次に、この外部 jar ファイルの参照を指します。どちらを抽出してから、一時的な IProject にリンクします。
<linkedResources>
<link>
<name>SampleTestSuite</name>
<type>2</type>
<location>D:/eclipse-rcp-indigo/tests/SampleTestSuite</location>
</link>
</linkedResources>
現在、この IProject Run-As JUnit を作成する予定です。JUnitの後に抽出してリンクしたjarファイルを削除したい。これは、JUnit を実行している以下のコードですが、ファイルを削除すると、リンクされたリソースが存在しないため、エラーがスローされます。リンクされたリソースが削除されるようにJUnitがすでに終了しているかどうかを監視する方法はありますか?
Activator.getDisplay().syncExec(new Runnable() {
public void run() {
Job job = new Job("Test Runner JUnit") {
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Launching JUnit", 100);
try {
ILaunch launch = new Launch(launchConfiguration,
"run", null);
launch.setAttribute(
"org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING",
DebugPlugin.getDefault().getLaunchManager()
.getEncoding(launchConfiguration));
DebugPlugin.getDefault().getLaunchManager()
.addLaunch(launch);
launchDelegate.launch(launchConfiguration, "run",
launch, monitor);
} catch (CoreException e) {
return e.getStatus();
} finally {
monitor.done();
}
return Status.OK_STATUS;
}
};
job.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
System.out.println("Job completed successfully");
// delete the file here
} else
System.out
.println("Job did not complete successfully");
}
});
job.setPriority(Job.INTERACTIVE);
job.schedule();
}
});