Eclipse &引用;“工作区已关闭”;尝试通过ResourcesPlugin获取工作区时出现异常

Eclipse &引用;“工作区已关闭”;尝试通过ResourcesPlugin获取工作区时出现异常,eclipse,plugins,resources,workspace,Eclipse,Plugins,Resources,Workspace,我在尝试通过ResourcesPlugin获取工作区时遇到此错误: java.lang.IllegalStateException: Workspace is closed. at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:339) 生成此命令的代码是: IWorkspace ws = ResourcesPlugin.getWorkspace(); 您能帮我解决这个问题吗?您的Ma

我在尝试通过ResourcesPlugin获取工作区时遇到此错误:

java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:339)
生成此命令的代码是:

IWorkspace ws = ResourcesPlugin.getWorkspace();

您能帮我解决这个问题吗?

您的
Manifest.MF
是否包含
org.eclipse.core.resources
中的
Require bundle
部分

您是否以插件的形式启动测试?(不是作为“Java应用程序”)

另见

如“帮助”页面中所述

您可以从resources插件类(在
org.eclipse.core.resources
中定义)访问工作区

当资源插件未运行时,工作区仅存在于文件系统中,由用户通过基于文件的标准工具查看或操作。在解释资源插件API时,让我们看看磁盘上的工作区是什么样子


发件人:

无论使用
-data
调用选项定义的名称如何,工作区目录都有两个角色:

  • 它充当
    .metadata
    目录的父目录
  • 和作为项目的默认位置
只有在以下情况下,工作区才能包含项目:

  • org.eclipse.core.resources
    插件包含在配置和
  • 并适当地从工作台开始
这是基于
org.eclipse.ui.IDE.workbench
应用程序的IDE配置自动完成的

另请参见并记住:

该工作区与用于测试插件的运行时工作区不同。当您在EclipsePDE环境上运行时,它会创建一个完全为空的新工作区

测试启动选项

如果要访问文件,最好将其包含在插件本身中,然后使用
getClass().getResourceAsStream(“/myfile.txt”)
获取一个
InputStream
,您可以读取其内容


尝试在插件中调用
Plugin.getStateLocation()
,它将为您创建工作区。如果没有此选项,您也无法保存任何首选项


呃,对不起——我刚才无意中完成了这个问题:)

Manifest.MF文件包含org.eclipse.core.resources,位于Require bundle部分。但我不想将应用程序作为插件运行。我不是在尝试创建插件。只是为了在eclipse中使用AST解析器。我可以解决这个问题,并且仍然将java程序作为应用程序运行吗?作为java应用程序,您不能使用ResourcesPlugin函数。所以你需要通过更经典的文件资源来访问资源。另外,我忘了说我自己找到了第一个网页,并做了那里建议的任何事情。但还是没用。如果我使用org.eclipse.core.resources中的ResourcesPlugin类,那么在getWorkspace()方法中,工作区为null。这就是抛出异常的原因。为什么会这样?工作空间设置在哪里?Jut用工作空间特性的更多细节完成了我的回答。