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

如何在运行EclipseJava项目之前等待EclipseIProject.create()和IProject.open()完成,eclipse,eclipse-plugin,eclipse-api,Eclipse,Eclipse Plugin,Eclipse Api,我有一个Eclipse插件,可以自动将现有的Eclipse Java项目加载到工作区,打开它,最后运行Java应用程序。如果工作区中已经存在Java项目,插件将刷新相对于文件系统上项目的项目 当只刷新插件时效果很好,但是当插件第一次通过调用IProject.create()导入项目,打开并运行它时,我得到一个错误对话框,说找不到程序 据说IProject.create()和open()是长期运行的操作。有没有办法等到IProject.create()完成后再调用IProject.open,在完成

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

当只刷新插件时效果很好,但是当插件第一次通过调用IProject.create()导入项目,打开并运行它时,我得到一个错误对话框,说找不到程序

据说IProject.create()和open()是长期运行的操作。有没有办法等到IProject.create()完成后再调用IProject.open,在完成open方法后再调用project.run()方法?

IProject#create()
IProject#open()
都是阻塞方法,所以你不必做任何特殊的事情来“等待它们”--当控件返回调用站点时,它们分别创建和打开项目

项目是否包含需要编译的Java源代码?如果是这样的话,您可能还应该在打开项目之后、尝试在其中运行Java程序之前构建项目。尝试使用以下方法:

project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);