使用JDT解析工作空间时出现“Workspace已关闭”错误

时间:2015-10-17 07:10:58

标签: java eclipse-plugin abstract-syntax-tree eclipse-jdt

我想编写一个Java应用程序,它在我的工作区中显示项目的所有名称。但我的程序总是注意如下。

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:411)
at myPackage.ProjectVisitor.<init>(ProjectVisitor.java:9)
at myPackage.ProjectVisitor.main(ProjectVisitor.java:16)

以下是我创建自己的应用程序的步骤:

  1. 安装Java开发工具( JDT

  2. 创建一个满足以下所有选项的空白eclipse插件:

    • Eclipse版本: 3.5或更高
    • 执行环境: JavaSE-1.8
    • 富客户端应用程序? (选择
  3. 添加名为 org.eclipse.core.resources_3.10.1.v20150725-1910.jar的<.jar

  4. 按如下方式创建 ProjectVisitor.java

    import org.eclipse.core.resources.IProject;
    import org.eclipse.core.resources.ResourcesPlugin;
    public class ProjectVisitor {
        public ProjectVisitor() {
            IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
            for (IProject project : projects) {
                // do something to display its name
            }
        }
        public static void main(String[] args) {
            ProjectVisitor m = new ProjectVisitor();
        }
    }
    
  5. 以“Java Application”身份运行。

  6. 请帮帮我。提前致谢。

1 个答案:

答案 0 :(得分:5)

您不能使用普通Java应用程序中的任何Eclipse工作区API。

只有作为Eclipse或Eclipse RCP的一部分运行的Eclipse插件才能访问工作区。这是因为在Eclipse启动期间进行了大量初始化以使工作空间可用。