I get this error when trying to get the workspace through ResourcesPlugin:
java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:339)
The code generating this is:
IWorkspace ws = ResourcesPlugin.getWorkspace();
Can you please help with this problem?
Does your Manifest.MF
contain the org.eclipse.core.resources
in the Require-bundle
section ?
And do you launch your test as a plugin ? (not as a 'Java Application')
See also this thread.
As mentioned in the "Resources and the file system" help page,
You can access the workspace from the resources plug-in class (defined in
org.eclipse.core.resources
).When the resources plug-in is not running, the workspace exists solely in the file system and is viewed or manipulated by the user via standard file-based tools. Let's look at what a workspace looks like on disk as we explain the resources plug-in API.
From this book:
The workspace directory, regardless of the name defined with the
-data
invocation option, has two roles:
- it acts as the parent for the
.metadata
directory- and as the default location for projects
the workspace can contains projects only when:
- the
org.eclipse.core.resources
plugin is included in the configuration and- and appropriately started from the workbench
this is automatic from an IDE configuration based on the
org.eclipse.ui.ide.workbench
application.
See also this thread and remember that:
the workspace is a different workspace from the runtime-workspace that's used for testing plugins. When you do Run on an Eclipse PDE environment, it creates a new workspace which is completely empty.
The testing workspace root can be specified through the "-data" launching option.
If you want to access a file, your best bet is to include it in the plugin itself, and then use
getClass().getResourceAsStream("/myfile.txt")
to get anInputStream
that you can read the contents for.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With