簡體   English   中英

從插件動態重新加載eclipse中的目標平台

[英]Reload target platform in eclipse dynamically from plugin

我正在為 eclipse 編寫一個插件,我需要在給定時間重新加載活動的目標平台。 - 就像 Preferences -> Plug-In Development -> Target Platform -> Reload.button,但當然是從我的插件動態。

我想像這樣的事情會是這樣,但我找不到入口/MagicProvider:

MagicProvider.getTargetPlatforms().getActive().reload();

希望你們中的一些人知道訣竅:)

嘗試了 Max 的方法,但似乎不起作用。 在搜索了 eclipse 源之后,我發現 ITargetDefinition 只是一個工作副本,必須保存。 所以代碼將是:

org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService service = org.eclipse.pde.internal.core.PDECore.getDefault().acquireService(ITargetPlatformService.class.getName());
org.eclipse.pde.internal.core.target.provisional.ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition();
target.resolve(IProgressMonitor);
org.eclipse.pde.internal.core.target.provisional.LoadTargetDefinitionJob.load(target);

但該指南歸功於 Max。 :)

如果其他人需要一些信息,我建議查看

org.eclipse.pde.internal.ui.preferences.TargetPlatformPreferencePage靠近第 771 - 812 行和方法 handleReload() 和org.eclipse.pde.internal.ui.editor.targetdefinition.TargetEditor靠近第 231 行

干得好:

org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService service = org.eclipse.pde.internal.core.PDECore.getDefault().acquireService(ITargetPlatformService.class.getName());
org.eclipse.pde.internal.core.target.provisional.ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition();
target.resolve(IProgressMonitor);

在 Eclipse 2020-09 中,它對我有用,因為...

import org.eclipse.pde.core.target.ITargetDefinition;
import org.eclipse.pde.core.target.ITargetPlatformService;
import org.eclipse.pde.core.target.LoadTargetDefinitionJob;
...
    BundleContext context = ... from Activator.start() method
    ServiceReference<ITargetPlatformService> ref = context.getServiceReference(ITargetPlatformService.class);
    ITargetPlatformService service = context.getService(ref);
    ITargetDefinition def = service.getWorkspaceTargetDefinition();
    def.resolve(new NullProgressMonitor());
    LoadTargetDefinitionJob.load(def);

在 plugin.xml 中添加依賴項 org.eclipse.pde.core

暫無
暫無

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

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