#java #eclipse #eclipse-plugin #eclipse-rcp #m2eclipse
#java #eclipse #eclipse-плагин #eclipse-rcp #m2eclipse
Вопрос:
Как использовать IWorkspace ws=ResourcesPlugin.getWorkspace()
Eclipse в обычном Java-проекте?
Я хочу использовать Eclipse workspace 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();
}
}
Комментарии:
1. В отличие, например, от JGit и компилятора Eclipse для Java (ecj), это не предназначено для запуска за пределами Eclipse. Так что вы не можете.
2. Вы не можете использовать это в обычном Java-проекте, оно работает только в плагине Eclipse, работающем в Eclipse.
3. Основная проблема здесь заключается в том, что o.e.c.resources JAR является пакетом OSGi, а класс ResourcesPlugin является активатором для этого пакета. Управление рабочей областью связано с жизненным циклом пакета и для его функционирования требуется работающая платформа OSGi. Это верно и для зависимостей этого пакета (o.e.c.filesystem, o.e.c. выражения, o.e.c.время выполнения).
4. Гипотетически, что вы хотите сделать с рабочей областью?
Ответ №1:
ResourcesPlugin.getWorkspace()
возвращает текущую рабочую область Eclipse, в которой работает Eclipse. Но у вас не работает Eclipse, так что это не имеет смысла. Вам нужно будет запустить Eclipse. Вероятно, есть более простой способ сделать все, что вы пытаетесь сделать.