【发布时间】:2021-01-10 18:03:53
【问题描述】:
在普通Java项目中如何使用Eclipse的IWorkspace ws=ResourcesPlugin.getWorkspace()?
我想使用 Eclipse 工作区 feting API (IWorkspace),当我在插件开发中使用它时它工作得非常好。
但是当我编写一个 Java 程序并使用相同的代码时,它会停止工作并抛出异常:Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
public class GitStatusCall {
public static void main(String[] args) throws IOException, NoHeadException {
IWorkspace ws=ResourcesPlugin.getWorkspace();
System.out.println();
}
}
【问题讨论】:
-
不像例如JGit 和 Java 的 Eclipse 编译器 (ecj) 不打算在 Eclipse 之外运行。所以你不能。
-
你不能在普通的Java项目中使用它,它只能在Eclipse中运行的Eclipse插件中使用。
-
这里的主要问题是 o.e.c.resources JAR 是一个 OSGi 包,而 ResourcesPlugin 类是该包的激活器。工作区管理与捆绑包的生命周期相关联,并且需要运行 OSGi 框架才能运行。这也适用于这个包的依赖项(o.e.c.filesystem、o.e.c 表达式、o.e.c.runtime)。
-
假设你想对工作区做什么?
标签: java eclipse eclipse-plugin eclipse-rcp m2eclipse