4

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

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

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

4

1 回答 1

4

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

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

project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
于 2011-08-24T07:43:03.767 回答