You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用org.eclipse.equinox.simpleconfigurator启动Eclipse 4.26失败求助

解决Eclipse 4.26中simpleConfigurator启动时"No application id has been found"的问题

问题场景

使用Eclipse 4.26版本,通过simpleConfigurator启动应用时抛出以下异常:

java.lang.RuntimeException: No application id has been found.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:246)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:33)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

已完成配置:

  • 按教程设置启动级别,配置写入org.eclipse.equinox.simpleconfigurator/configuration/bundles.info
  • 无插件解析错误,确认所有插件已加载
  • 当前config.ini配置:
osgi.clean=true
org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info
osgi.bundles=org.eclipse.equinox.simpleconfigurator_1.4.200.v20221111-1340.jar@1\:start
osgi.bundles.defaultStartLevel=4
osgi.checkConfiguration=true

尝试调整启动级别无效,以下是可行的解决方案:


解决方案

1. 在config.ini中指定应用ID

Eclipse启动必须明确目标应用ID,在config.ini中添加:

eclipse.application=你的应用ID

应用ID可从你RCP应用的plugin.xml或application.e4xmi中获取,格式通常为com.xxx.xxx.application。

2. 检查bundles.info的关键bundle配置

确保bundles.info中包含以下两类bundle:

  • org.eclipse.equinox.app:这是处理应用启动的核心bundle,必须存在且启动级别正确
  • 你的应用bundle:确保其条目存在,启动级别建议设为4(与默认级别一致)

示例条目:

org.eclipse.equinox.app,1.6.200.v20220817-1212,plugins/org.eclipse.equinox.app_1.6.200.v20220817-1212.jar,4,true
com.example.rcp.application,1.0.0.qualifier,plugins/com.example.rcp.application_1.0.0.qualifier.jar,4,true

3. 验证应用bundle的配置正确性

传统RCP应用

检查plugin.xml中是否有org.eclipse.core.runtime.applications扩展,示例:

<extension
     id="application"
     point="org.eclipse.core.runtime.applications">
  <application>
     <run
           class="com.example.rcp.Application">
     </run>
  </application>
</extension>

e4应用

  • 确认application.e4xmi中定义了完整的应用模型
  • 检查bundle的MANIFEST.MF是否包含Eclipse-Application头:
Eclipse-Application: com.example.rcp.application

4. 排查启动命令行参数

如果通过命令行启动,确保-application参数指定的ID与config.ini一致,且该ID确实存在。

5. 清理并重建配置

  1. 删除configuration/org.eclipse.equinox.simpleconfigurator文件夹
  2. 执行eclipse -clean命令触发配置重建
  3. 重启应用

额外排查手段

  • 查看configuration/logs/eclipse.log,获取启动过程的详细日志,确认应用bundle是否被激活
  • 启动时添加-console参数打开OSGi控制台:
    • 执行ss命令查看所有bundle状态,确保org.eclipse.equinox.app和你的应用bundle处于ACTIVE状态
    • 执行app -list命令,检查系统中注册的应用ID是否包含你的目标ID

内容的提问来源于stack exchange,提问作者jeevan08

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:18:20