我正在运行以下代码:
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
public class WorkspaceTest {
public static void main(String[] args) {
IWorkspace workspace = ResourcesPlugin.getWorkspace();
}
}
我收到以下错误:
Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
如何获取非eclipse插件的工作区引用?
(为了能够在这里运行代码:)
http://www.ssw.uni-linz.ac.at/Teaching/Lectures/KompTech/JDT.pdf
答案 0 :(得分:0)
首先,它可以简单地表示您不是在Eclipse下运行,而是仅在标准Java应用程序下运行。
对于eclipse插件,你需要做的就是不要太快调用它(比如在创建工作区之前)。非eclipse插件的含义,您可能必须以某种方式创建工作空间,因为您将无法引用已经存在于eclipse中的工作空间。
另外,您必须确保在构建路径中没有org.eclipse.core.resources
,而是在插件manifest.mf文件中作为依赖插件。 (见this thread)
所以ResourcePlugin
没有被eclipse实例化(尽管你仍然可以用代码调用ResourcePlugin
类。)
另见this answer其他想法。