0

I am currently trying to access my eclipse projects by using eclipses workspace and project abstractions, but i failed very soon.

Please have a look at the following code:

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);
}

If i execute it i get:

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)

Does anyone know how to fix this?

Thanks for your help.

Ori Dar
  • 18,687
  • 5
  • 58
  • 72
lahnsurfer
  • 15
  • 1
  • 6

1 Answers1

1

EclipseStarter does not initialize the Eclipse workspace.

To run a headless Eclipse application you must define a class that implements org.eclipse.equinox.app.IApplication in a plug-in.

In the plugin.xml you define an application:

<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>

and you run the application

java -jar plugins/org.eclipse.equinox.launcher_xxx.jar -application application-id -debug -data datapath
greg-449
  • 109,219
  • 232
  • 102
  • 145