【问题标题】:Add a directory to a Target Platform dynamically on Eclipse在 Eclipse 上动态地将目录添加到目标平台
【发布时间】:2023-03-29 11:12:02
【问题描述】:

我使用的是 Eclipse 3.7 (Indigo) 并且有一个插件,它可以将定义的目录添加到活动的目标平台。

ITargetPlatformService service = (ITargetPlatformService) PDECore.getDefault().acquireService(ITargetPlatformService.class.getName());
ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition();
IBundleContainer[] bundles = target.getBundleContainers();
String myDirectory = "C:\\directory";
boolean containsMyDirectory = false;

for (IBundleContainer bundle : bundles) {
    if (bundle.toString().contains(myDirectory.toString())) {
        containsMyDirectory = true;
        break;
    }
}

if (!containsMyDirectory) {
    bundles = Arrays.copyOf(bundles, bundles.length + 1);
    bundles[bundles.length - 1] = service.newDirectoryContainer(myDirectory.toString());
    target.setBundleContainers(bundles);
    service.saveTargetDefinition(target);
    LoadTargetDefinitionJob.load(target);
}

但是现在,我们正在迁移到 Eclipse 4.4 (Luna),代码不再编译,显示以下消息: 无法解析导入org.eclipse.pde.internal.core.target.provisional

无法解析的导入是:

import org.eclipse.pde.internal.core.target.provisional.IBundleContainer;
import org.eclipse.pde.internal.core.target.provisional.ITargetDefinition;
import org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService;
import org.eclipse.pde.internal.core.target.provisional.LoadTargetDefinitionJob;

Eclipse 3.7 中使用的 jar 是 org.eclipse.pde.core_3.7.1.v20120103_r372.jar,Eclipse 4.4 中使用的是 org.eclipse.pde.core_3.10.0.v20140519-1409.jar

我找不到替换旧类的类。

有人知道该怎么做吗?

【问题讨论】:

    标签: java eclipse pde target-platform


    【解决方案1】:

    这些类是内部的,所以您不应该使用它们。

    它们现在已全部移至 org.eclipse.pde.core 插件中的 org.eclipse.pde.target 包,因此它们现在是官方 API 的一部分。

    但是PDECore 仍然是内部的,因此不应使用。由于ITargetPlatformService 是一项OSGi 服务,您应该能够使用ServiceReference 在您的插件中获取它。

    【讨论】:

    • 那不存在的方法 ITargetDefinition.getBundleContainers() 和 ITargetPlatformService.newDirectoryContainer(String) 呢?
    • 抱歉,不知道,您可能需要查看旧源和新源,看看他们如何将临时 API 更改为最终 API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2014-03-18
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多