Java 如何从“最近的启动”下拉列表中删除无效的启动配置

Java 如何从“最近的启动”下拉列表中删除无效的启动配置,java,eclipse,eclipse-rcp,eclipse-plugin,Java,Eclipse,Eclipse Rcp,Eclipse Plugin,我目前正在开发一个Eclipse插件,它添加了自定义的启动配置,这些配置链接到工作台中的某些资源 背景:有时,基础资源会发生更改,导致启动配置无效,不应运行 如何以编程方式从“最近发布”下拉列表中删除发布配置? 我是说这个向下的小箭头: 这将显示最近发布的所有最新发布配置 编辑:我目前正试图通过访问历史,但我似乎找不到一个API可以告诉我在哪里可以获得正确的实例,目前所有内容都为空 第二次编辑:LaunchConfigurationManager是内部软件包的一部分,不应使用 背景:有时,基础

我目前正在开发一个Eclipse插件,它添加了自定义的启动配置,这些配置链接到工作台中的某些资源

背景:有时,基础资源会发生更改,导致启动配置无效,不应运行

如何以编程方式从“最近发布”下拉列表中删除发布配置?

我是说这个向下的小箭头:

这将显示最近发布的所有最新发布配置

编辑:我目前正试图通过访问历史,但我似乎找不到一个API可以告诉我在哪里可以获得正确的实例,目前所有内容都为空

第二次编辑:LaunchConfigurationManager是内部软件包的一部分,不应使用

背景:有时,基础资源会发生更改,使启动配置无效,并且不应处于可运行状态

为什么要从历史记录中删除“无效”的启动配置,而不删除它?如果无效,则将其完全移除或修复。但那只是我的两分钱,我不知道你申请的细节

如果您愿意冒险使用内部API,您应该能够通过
DebugUIPlugin.getDefault().getLaunchConfigurationManager()lgetLaunchHistory()
获取
LaunchHistory

但是您是否尝试过立即删除并重新添加无效的启动配置,以便将其从历史记录中删除

ILaunchConfigurationWorkingCopy workingCopy=launchConfig.getWorkingCopy();
workingCopy.delete();
ILaunchConfigurationType launchType=launchConfig.getType();
IContainer容器=launchConfig.getFile()==null?null:launchConfig.getFile().getParent();
ILaunchConfigurationWorkingCopy newLaunchConfig=launchType.newInstance(容器,workingCopy.getName());
//将所有属性从“launchConfig”复制到“newLaunchConfig”
newLaunchConfig.doSave();

为了反映
资源的删除情况,需要使用
ILaunchConfigurationWorkingCopy.setMappedResources(IResource[])将其与启动配置链接起来。

之后,当您从工作区(无论是否也在磁盘上)删除此资源时,这将隐藏映射了此资源的启动配置

我的解决方案是在所使用的
AbstractLaunchConfigurationTab

我在哪里找到这个的链接


注意:现在,当资源被删除(但不是在磁盘上,您可以在一个项目中针对正常的Java启动配置尝试此操作),然后重新添加时,启动配置将备份所有以前的详细信息

是否要完全删除启动配置(即删除它)或者只是将其从启动历史记录中删除?只是从启动历史记录中删除谢谢您建议删除启动配置。我会尝试移除解决方案,让你知道我尝试过这个,似乎不起作用。尽管我使用了launchConfig.getType()而不是DebugPlugin.getDefault.getLaunchManager().getLaunchConfigurationType(…);这真的有必要吗?事实上,
launchConfig.getType()
是更好的选择。但到底有什么不起作用呢?它没有从历史记录中删除它似乎是将资源映射到启动配置以自动方式处理这一问题,就像其他所有常见的运行配置一样(如果项目被删除[不在磁盘上]并重新引入,运行配置也将重新生成)真棒的问题和伟大的解释!