为什么我无法访问 IPackageFragmentRoot?

why i can't access IPackageFragmentRoot?

我会尝试开发一些插件。 所以,我正在研究插件和听众。 我尝试使用侦听器和 javamodel 开发示例。 但是,当我访问 IPackageFragmentRoot 元素时,它并没有按照我的意愿进行。 所以,我调试了它。然后,我看到 IJavaProject 元素没有打开!但是我仍然可以在 eclipse 中访问这个项目。

我的代码有什么问题?以及如何在 IPackageFragmentRoot 中访问?

这些是未打开状态的示例。

这是代码片段。 currentProject 是我在 package explorer 中选择的 IProject。

if (currentProject != null) {
    try {
        currentProject.open(new NullProgressMonitor());
    } catch (CoreException e) {
        e.printStackTrace();
    }
    IJavaProject javaProject = JavaCore.create(currentProject);
    ProjectTreeNode root = createTreeNode(javaProject.getElementName());
    IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot("src");
    root = getContents(srcFolder, root);
    setInput(root);
}

添加

我在新工作区中导入了一些项目。

这是不是走错了??

我假设您正在使用 'Run as Eclipse Application' 到 运行 并测试您的插件。

当您 运行 插件 Eclipse 启动带有新工作区的全新 Eclipse 实例时。 None 的现有代码存在于此工作区中。您必须创建新项目,其中包含您要在此新工作区中测试的项目。