如何在运行Eclipse Java项目之前等待Eclipse IProject.create()和IProject.open()完成

时间:2011-08-24 07:32:26

标签: eclipse eclipse-plugin eclipse-api

我有一个Eclipse插件,可以自动将现有的Eclipse Java项目加载到工作区,打开它并最终运行Java应用程序。如果Java项目已存在于工作空间中,则插件会相对于文件系统上的项目刷新项目。

当只刷新插件工作正常时,但是当插件首先通过调用IProject.create()导入项目时,打开并运行它,我得到一个错误对话框,说明找不到该程序。

IProject.create()和open()被认为是长时间运行的操作。有没有办法等到IProject.create()完成然后调用IProject.open并在完成打开的methdod之后调用project.run()方法?

1 个答案:

答案 0 :(得分:3)

IProject#create()IProject#open()都是阻止方法,所以你不必做任何特别的事情来“等待它们” - 当控制返回到调用站点时,它们就完成了分别打开项目。

项目是否包含需要编译的Java源代码?如果是这样,您应该在打开项目之后以及尝试在其中运行Java程序之前构建项目。试试这个:

project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);