Я разрабатываю плагин Eclipse, который имеет пользовательский интерфейс.Мне нужно иметь доступ к коду плагина во время выполнения (загрузить некоторые имена классов из плагина для создания выпадающего списка в пользовательском интерфейсе), а также иметь возможность генерировать класс в исходном коде плагина,таким же образом, во время выполнения.
Есть ли какой-нибудь возможный способ сделать это?
Чтобы получить доступ к коду, я попробовал следующее:
IWorkspace thisWorkspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot thisWorkspacesRoot = thisWorkspace.getRoot();
IProject thisProject = thisWorkspacesRoot.getProject("MyPluginsNameHere");
IJavaProject thisJavaProject = JavaCore.create(thisProject);
изатем я анализирую этот IJavaProject и получаю классы.
Проблема в том, что переменная thisWorkspace загружается с рабочей областью приложения eclipse во время выполнения вместо рабочей области плагина.
Эта проблема обсуждалась здесь: https://www.eclipse.org/forums/index.php/t/105604/
Данное решение было:
Я нашел хитрость для определения местоположения рабочей области.Вот мой код: org.eclipse.core.resources.ResourcesPlugin.getWorkspace (). Ge tRoot (). GetLocation ()
Когда я запускаю это для тестирования через «Запуск приложения Eclipse» или «Запуск Eclipse»Кнопки приложения, он возвращает это местоположение: рабочая область: C: / Documents and Settings / rbt / Мои документы / runtime-EclipseApplication
Но когда я экспортирую его как «Развертываемый плагин» (Файл-> Экспорт-> Развертываемые плагины и фрагменты), перезапустите Eclipse и выполните его как развертываемый плагин.На этот раз он возвращает это местоположение: C: / Documents and Settings / rbt / My Documents / workspace
Это не может быть применено к моему плагину, так как я зависим от другого плагина, который не может бытьэкспортируется как развертываемый плагин.
Есть ли другой способ сделать это и запустить плагин как приложение Eclipse?