2014-01-29 4 views
0

В настоящее время я пытаюсь получить доступ к моим проектам eclipse, используя рабочую область затмений и абстрагировать проект, но я не смог в ближайшее время.IllegalStateException: Рабочая область закрыта при вызове ResourcesPlugin.getWorkspace()

Пожалуйста, посмотрите на следующий код:

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

EclipseStarter не инициализирует рабочее пространство Eclipse.

Чтобы запустить приложение Eclipse headless, вы должны определить класс, который реализует 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 
Смежные вопросы