我有一个Eclipse插件,可以自动将现有的Eclipse Java项目加载到工作区,打开它并最终运行Java应用程序。如果Java项目已存在于工作空间中,则插件会相对于文件系统上的项目刷新项目。
当只刷新插件工作正常时,但是当插件首先通过调用IProject.create()导入项目时,打开并运行它,我得到一个错误对话框,说明找不到该程序。
IProject.create()和open()被认为是长时间运行的操作。有没有办法等到IProject.create()完成然后调用IProject.open并在完成打开的methdod之后调用project.run()方法?
答案 0 :(得分:3)
IProject#create()
和IProject#open()
都是阻止方法,所以你不必做任何特别的事情来“等待它们” - 当控制返回到调用站点时,它们就完成了分别打开项目。
项目是否包含需要编译的Java源代码?如果是这样,您应该在打开项目之后以及尝试在其中运行Java程序之前构建项目。试试这个:
project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);