我是 Eclipse 插件开发的新手,我正在尝试开发一个插件,我需要在其中加载在导航器中选择的类。
您能否指导我如何从 Eclipse 插件加载一个类或创建一个类加载器,以便在使用我的插件的 Eclipse 工作台中加载一个类。
提前致谢。
问候吉拉尼
我是 Eclipse 插件开发的新手,我正在尝试开发一个插件,我需要在其中加载在导航器中选择的类。
您能否指导我如何从 Eclipse 插件加载一个类或创建一个类加载器,以便在使用我的插件的 Eclipse 工作台中加载一个类。
提前致谢。
问候吉拉尼
您需要创建一个 URLClassLoader。您可能希望它是否为父对象,具体取决于您的安全问题。如果由 OSGi 包类加载器作为父级,则用户将有权访问该特定包中的所有类,这可能是用户获得对整个 Eclipse 平台的运行时访问权(并访问插件注册表和OSGi 服务等)。用户也可以调用System.exit()
。这在单用户系统上可能不是问题,但值得考虑,特别是如果用户可能从 Internet 下载未经验证的脚本。
话虽这么说,你需要做这样的事情:
((BundleHost) Activator.getBundleContext().getBundle()).getLoaderProxy().getBundleLoader()