【问题标题】:Get list of target Platform programmatically以编程方式获取目标平台列表
【发布时间】:2015-08-19 16:27:18
【问题描述】:

如何以编程方式获取工作区的可用目标定义列表?我正在编写一个需要显示所有可用目标平台列表的插件。

【问题讨论】:

    标签: java eclipse eclipse-plugin target-platform


    【解决方案1】:

    ITargetPlatformService OSGi 服务提供有关目标平台的信息。

    通过以下方式获取:

    ServiceReference<ITargetPlatformService> ref = bundleContext.getService(ITargetPlatformService.class);
    
    ITargetPlatformService service = bundleContext.getService(ref);
    

    其中bundleContext 是传递给插件激活器的start 方法的BundleContext

    调用

    public ITargetHandle[] getTargets(IProgressMonitor monitor)
    

    ITargetPlatformService 获取目标平台数组的方法。

    【讨论】:

    • 谢谢@greg。如何在 Activator 之外获得 BundleContext 的引用?
    • 我使用 FrameowrkUtil 类来获取包上下文,但现在我无法找到调用 getTargets 时如何获取监视器
    • 您可以使用null作为监视器或NullProgressMonitor
    • 是的,我使用了 NullProgressMonitor。谢谢。但它并没有拉所有的目标平台,只是正在运行的目标平台。我正在使用 service.getTargets(new NullProgressMonitor());其中 service 是 ITargetPlatformService
    • 不要忘记,当您使用“运行 > Eclipse 应用程序”测试插件时,会启动一个新的测试 Eclipse。您在测试 Eclipse(不是您的主要开发 Eclipse)中获得目标平台。您需要在测试 Eclipse 中设置目标平台。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多