簡體   English   中英

在Eclipse上動態將目錄添加到目標平台

[英]Add a directory to a Target Platform dynamically on Eclipse

我使用的是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

我找不到替代舊類的類。

有人知道該怎么辦嗎?

這些類是內部類,因此您不應該使用它們。

現在它們已全部移至org.eclipse.pde.core插件中的org.eclipse.pde.target包中,因此它們已成為官方API的一部分。

但是PDECore仍然是內部的,因此不應使用。 由於ITargetPlatformService是OSGi服務,因此您應該可以使用ServiceReference在插件中獲取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM