Eclipse plugin 无法解析模块:org.eclipse.cdt.launch.remote

Eclipse plugin 无法解析模块:org.eclipse.cdt.launch.remote,eclipse-plugin,osgi,eclipse-cdt,abstract-syntax-tree,Eclipse Plugin,Osgi,Eclipse Cdt,Abstract Syntax Tree,我试图使用eclipse的CDT为一些cpp文件生成AST。我遵循此处给出的指示: 但是,我遇到了一个错误,说: Exception in thread "main" java.lang.IllegalStateException: Workspace is closed. at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:399) at etl.CppParser.Parser(Cpp

我试图使用eclipse的CDT为一些cpp文件生成AST。我遵循此处给出的指示:

但是,我遇到了一个错误,说:

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:399)
at etl.CppParser.Parser(CppParser.java:23)**
在谷歌搜索了一段时间后,我明白了为了访问工作区中的项目(使用
ResourcesPlugin.getWorkspace().getRoot().getFile(path);
),该项目应该是一个插件项目,但我的项目是一个简单的Java项目

因此,我开始在eclipse中开发一个插件项目。我创建了一个目标平台,在其中添加了项目所需的所有插件依赖项。但是,当我将插件项目作为Eclipse应用程序运行时,仍然存在一个问题。下面是确切的错误:

!ENTRY org.eclipse.cdt.launch.remote 4 0 2013-11-30 01:43:27.379
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.cdt.launch.remote [300]
  Unresolved requirement: osgi.wiring.bundle; filter:="(&(osgi.wiring.bundle=org.eclipse.rse.ui)(&(bundle-version>=3.0.0)(!(bundle-version>=4.0.0))))"
    at org.eclipse.osgi.container.Module.start(Module.java:424)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1530)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1509)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1481)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1424)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: org.osgi.service.resolver.ResolutionException: Unable to resolve osgi.identity; osgi.identity="org.eclipse.cdt.launch.remote"; type="osgi.bundle"; version:Version="2.4.0.201309180223"; singleton:="true": missing requirement osgi.wiring.bundle; filter:="(&(osgi.wiring.bundle=org.eclipse.rse.ui)(&(bundle-version>=3.0.0)(!(bundle-version>=4.0.0))))"
    at org.apache.felix.resolver.Candidates.populateResource(Candidates.java:285)
    at org.apache.felix.resolver.Candidates.populate(Candidates.java:153)
    at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:147)
    at org.eclipse.osgi.container.ModuleResolver$ResolveProcess.resolve(ModuleResolver.java:652)
    at org.eclipse.osgi.container.ModuleResolver.resolveDelta(ModuleResolver.java:75)
    at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:454)
    at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:412)
    at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:402)
    at org.eclipse.osgi.container.Module.start(Module.java:406)
    ... 7 more
Root exception:
org.osgi.service.resolver.ResolutionException: Unable to resolve osgi.identity; osgi.identity="org.eclipse.cdt.launch.remote"; type="osgi.bundle"; version:Version="2.4.0.201309180223"; singleton:="true": missing requirement osgi.wiring.bundle; filter:="(&(osgi.wiring.bundle=org.eclipse.rse.ui)(&(bundle-version>=3.0.0)(!(bundle-version>=4.0.0))))"
    at org.apache.felix.resolver.Candidates.populateResource(Candidates.java:285)
    at org.apache.felix.resolver.Candidates.populate(Candidates.java:153)
    at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:147)
    at org.eclipse.osgi.container.ModuleResolver$ResolveProcess.resolve(ModuleResolver.java:652)
    at org.eclipse.osgi.container.ModuleResolver.resolveDelta(ModuleResolver.java:75)
    at org.eclipse.osgi.container.ModuleContainer.resolveAndApply(ModuleContainer.java:454)
    at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:412)
    at org.eclipse.osgi.container.ModuleContainer.resolve(ModuleContainer.java:402)
    at org.eclipse.osgi.container.Module.start(Module.java:406)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1530)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1509)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1481)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1424)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
谁能告诉我我能做些什么来解决这个问题。。。我无法理解目前的问题是什么


非常感谢您的帮助。

错误显示bundle org.eclipse.cdt.launch.remote有一个Require bundle(osgi.willing.bundle)语句,其中列出了bundle org.eclipse.rse.ui和bundle版本范围[3.0,4.0)。因此org.eclipse.cdt.launch.remote无法解析,因为它依赖于捆绑包org.eclipse.rse.ui,捆绑包版本>=3和<4。

好的,我自己解决了这个问题。我所做的工作如下:我找到了与目标管理相关的下载链接,并下载了rse运行时3.2.2(它是>=3,首选项->插件开发->目标平台,然后选择我的目标平台->编辑->添加->目录,添加通过提取下载的RSE runtime 3.2.2.zip获得的目录

在此之后,当我以Eclipse应用程序的形式运行插件项目时,我再也没有错误了,因为现在,我的插件项目使用的插件没有任何未解决的依赖项


我希望这能帮助别人。

有人能帮我吗?谢谢你的回复。我这样做了:Eclipse帮助->安装新软件->已经安装->插件,发现我安装了一个插件RSE UI,版本是3.2.0.v201105311250,插件id是org.Eclipse.RSE.UI。我试图更改org.Eclipse.cdt.l的清单文件aunch.remote无法包含此捆绑包版本,但它不允许我进行更改。您能告诉我如何解决此问题吗?非常感谢您的帮助