2015-10-17 2 views
2

Я хочу написать приложение Java, которое отображает все названия проектов в моей рабочей области. Но моя программа всегда замечает следующее.Ошибка «Рабочая область закрыта» при анализе рабочего пространства с помощью JDT

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed. 
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:411) 
at myPackage.ProjectVisitor.<init>(ProjectVisitor.java:9) 
at myPackage.ProjectVisitor.main(ProjectVisitor.java:16) 

Вот мои шаги, чтобы создать свое собственное приложение:

  1. Установка Java Developement Tool (JDT)

  2. Создание пустой затмение-плагин, удовлетворяющий все следующие параметры:

    • Eclipse версия: 3,5 или более
    • среды выполнения: JavaSE-1,8
    • Является ли Rich Client Application? (Выберите NO)
  3. Добавить .jar имени org.eclipse.core.resources_3.10.1.v20150725-1910.jar

  4. Создать ProjectVisitor.java следующим образом.

    import org.eclipse.core.resources.IProject; 
    import org.eclipse.core.resources.ResourcesPlugin; 
    public class ProjectVisitor { 
        public ProjectVisitor() { 
         IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); 
         for (IProject project : projects) { 
          // do something to display its name 
         } 
        } 
        public static void main(String[] args) { 
         ProjectVisitor m = new ProjectVisitor(); 
        } 
    } 
    
  5. Запуск от имени "Java Application".

Пожалуйста, помогите мне. Заранее спасибо.

+0

Это может помочь http://stackoverflow.com/questions/2113865/jdt-without-eclipse/22211176#22211176 – Templar

ответ

4

Вы не можете использовать любые API-интерфейсы рабочего пространства Eclipse из простого Java-приложения.

Только плагины Eclipse, работающие как часть Eclipse или RCP Eclipse, могут получить доступ к рабочей области. Это связано с большим количеством инициализации, выполняемой во время запуска Eclipse, чтобы сделать рабочее пространство доступным.

+0

Я проголосовал за вас, отвечая @ greg-449. Спасибо. – ducanhnguyen

Смежные вопросы