Вам необходимо создать URLClassLoader.Возможно, вы захотите, чтобы это было от родителей или нет, в зависимости от ваших соображений безопасности.Если он создан загрузчиком классов комплекта OSGi, то у пользователя будет доступ ко всем классам в этом конкретном комплекте, и это может стать задним ходом для пользователя, получающего во время выполнения доступ ко всей платформе Eclipse (и доступ к реестру подключаемых модулей иУслуги OSGi и др.)Пользователь также может позвонить System.exit()
.Это может не быть проблемой в однопользовательской системе, но есть над чем подумать, особенно если пользователь загружает непроверенные сценарии из Интернета.
При этом вам нужно сделать что-то подобное:
- Создание экземпляра URLClassLoader и добавление URL-адресов каталогов, содержащих файлы классов, которые вы хотите загрузить.
- , если вы хотите, чтобы классы имели доступ к среде выполнения Eclipse, тогдаустановите для родительского загрузчика значение
((BundleHost) Activator.getBundleContext().getBundle()).getLoaderProxy().getBundleLoader()
- Добавьте все каталоги, соответствующие URL-адресам, с которых пользователь может загружать классы.Но вы должны включить все зависимости для загрузки классов.
- Этого должно быть достаточно для загрузки необходимых вам классов.