Жизненный цикл Eclipse

#eclipse #eclipse-plugin #eclipse-api

#eclipse #eclipse-плагин #eclipse-api

Вопрос:

Я разрабатываю подключаемый модуль Eclipse. У меня есть класс Activator и мои собственные классы. Мне нужна хэш-таблица, которая должна запускаться при загрузке IDE и должна храниться и быть доступной (использоваться через несколько классов) до тех пор, пока IDE не будет закрыта.

Комментарии:

1. Можете ли вы подробнее рассказать о жизненном цикле этой хэш-таблицы? Проще всего создать его при первой необходимости, но, похоже, это не то, что вам нужно.

2. Я согласен с Danail выше. Маловероятно, что вам понадобится хэш-таблица с момента запуска Eclipse до момента его завершения. Скорее всего, вам это нужно для одного или нескольких ваших плагинов, начиная с момента их запуска и заканчивая их остановкой. Существует несколько механизмов, которые вы можете использовать для более раннего запуска своих плагинов. Какой из них наиболее подходит, будет зависеть от того, что именно вы хотите сделать.

3. Мой плагин загружает файл из Интернета и сохраняет его там, где указывает пользователь (путь и имя файла). Каждый раз, когда уже загруженный файл повторно не загружается, плагин должен указывать последний путь и имя файла, используемые для хранения этого же файла. Уже решен с приемлемым для меня решением. Спасибо вам всем!

Ответ №1:

Вы можете использовать точку расширения org.eclipse.ui.startup для автоматического запуска вашего плагина вместе с приложением.

Комментарии:

1. Просто примечание: вы можете воспользоваться этим в плагинах core или lib, но не включайте это в свой плагин пользовательского интерфейса. Это может серьезно повлиять на производительность при запуске и объем памяти.

Ответ №2:

Создайте отдельный плагин для хранения хэш-таблицы и расширьте его org.eclipse.ui.startup,

Простой пример:

plugin.xml:

 <?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.startup">
      <startup
            class="org.markus.startup.EarlyGreeter">
      </startup>
   </extension>
</plugin>
  

EarlyGreeter.java:

 package org.markus.startup;

import org.eclipse.ui.IStartup;

public class EarlyGreeter implements IStartup {
    @Override
    public void earlyStartup() {
        System.out.println("This is EarlyGreeter saying Hello during workbench startup.");
    }
}