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

duc*_*yen 2 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)
Run Code Online (Sandbox Code Playgroud)

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

  1. 安装Java开发工具(JDT)

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

    • Eclipse版本:3.5或更高版本
    • 执行环境:JavaSE-1.8
    • 富客户端应用程序?(选择NO)
  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();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 作为"Java应用程序"运行.

请帮我.提前致谢.

gre*_*449 5

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

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