IllegalStateException:在调用ResourcesPlugin.getWorkspace()时关闭Workspace

时间:2014-01-29 15:36:01

标签: java eclipse eclipse-pde

我目前正在尝试使用eclipses工作区访问我的eclipse项目 和项目抽象,但我很快就失败了。

请查看以下代码:

public static void main(String[] args) throws Exception {
    String[] equinoxArgs = { "-debug", "-data", "C:\\dev\\build\\workspace" };
    EclipseStarter.startup(equinoxArgs, null);
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    System.out.println(workspace);
}

如果我执行它,我得到:

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
    at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:399)
    at de.jaculon.samples.osgi.OsgiSample.main(OsgiSample.java:21)

有谁知道如何解决这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

EclipseStarter未初始化Eclipse工作区。

要运行headless Eclipse应用程序,您必须在插件中定义一个实现org.eclipse.equinox.app.IApplication的类。

plugin.xml中定义了一个应用程序:

<extension
     id="app-id"
     point="org.eclipse.core.runtime.applications">
   <application
        cardinality="singleton-global"
        thread="main"
        visible="true">
     <run
           class="application class">
     </run>
  </application>
</extension>

然后运行应用程序

java -jar plugins/org.eclipse.equinox.launcher_xxx.jar -application application-id -debug -data datapath