0

我是 Eclipse 插件开发的新手,我正在尝试开发一个插件,我需要在其中加载在导航器中选择的类。

您能否指导我如何从 Eclipse 插件加载一个类或创建一个类加载器,以便在使用我的插件的 Eclipse 工作台中加载一个类。

提前致谢。

问候吉拉尼

4

1 回答 1

0

您需要创建一个 URLClassLoader。您可能希望它是否为父对象,具体取决于您的安全问题。如果由 OSGi 包类加载器作为父级,则用户将有权访问该特定包中的所有类,这可能是用户获得对整个 Eclipse 平台的运行时访问权(并访问插件注册表和OSGi 服务等)。用户也可以调用System.exit()。这在单用户系统上可能不是问题,但值得考虑,特别是如果用户可能从 Internet 下载未经验证的脚本。

话虽这么说,你需要做这样的事情:

  1. 实例化一个 URLClassLoader 并添加包含您要加载的类文件的目录的 URL。
  2. 如果您希望类能够访问 Eclipse 运行时,则将父加载器设置为 ((BundleHost) Activator.getBundleContext().getBundle()).getLoaderProxy().getBundleLoader()
  3. 添加与用户可以从中加载类的 URL 对应的所有目录。但是,您必须包含所有依赖项才能加载类。
  4. 这应该足以加载您需要的类。
于 2011-03-21T05:50:51.720 回答