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