【问题标题】:How to use IWorkspace ws=ResourcesPlugin.getWorkspace() of Eclipse in normal Java project?如何在普通Java项目中使用Eclipse的IWorkspace ws=ResourcesPlugin.getWorkspace()?
【发布时间】: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


【解决方案1】:

ResourcesPlugin.getWorkspace() 返回 Eclipse 正在其中工作的当前 Eclipse 工作区。但是您没有运行 Eclipse,所以这没有任何意义。您必须启动 Eclipse。可能有更简单的方法来做任何你想做的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2012-04-10
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多