【问题标题】:eclipse product invocation causes java.lang.RuntimeException: No application id has been foundeclipse 产品调用导致 java.lang.RuntimeException: No application id has found
【发布时间】:2012-04-02 05:22:25
【问题描述】:

如果我点击“启动 Eclipse 应用程序”按钮,我刚刚导出了一个运行良好的产品。如果尝试执行导出的产品,我会在启动时遇到以下异常:

!SESSION 2012-03-16 17:28:21.206 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=de_DE
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY org.eclipse.osgi 4 0 2012-03-16 17:28:22.184
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: No application id has been found.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

就在我导出产品之前,我对依赖项进行了验证,结果很好。你知道出了什么问题吗?谢谢!

【问题讨论】:

    标签: export eclipse-rcp product


    【解决方案1】:

    通常,我会寻找以下内容:

    • 您在产品配置中导出的插件集与在启动配置中使用的插件集不同。没有可用于比较的工具。
    • 您有一个自定义的config.ini 文件,该文件未定义产品的正确应用程序。

    【讨论】:

    • 谢谢。我检查了config.ini 的设置,我没有自定义它。
    • 尝试在Eclipse中使用远程java调试对导出的产品进行调试,并添加-console参数。然后使用 OSGi“ss”命令查看产品中实际配置了哪些插件及其状态。
    • 我尝试了以下命令./eclipse -consoleLog -vmargs -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044。我无法尝试“ss”命令,因为消息立即出现并且虚拟机终止。 eclipse 文件夹只包含 configuration 和 plugins 文件夹以及可执行文件 eclipse.这有点奇怪,因为我习惯在根 eclipse 文件夹中有更多文件。谢谢你的帮助!
    • 如果您添加开关 -noexit,VM 不会终止,您可以做一些取证“ss”-ing。
    • 谢谢托尼和斯特拉卡。之后我在我的插件上使用diag ID 来确定无法解决女巫依赖。
    【解决方案2】:

    在产品配置文件中添加了缺少的 javax.xml 依赖项:

    <plugin id="com.ibm.icu"/>
    <plugin id="javax.annotation"/>
    <plugin id="javax.inject"/>
    +<plugin id="javax.xml"/>
    <plugin id="org.apache.batik.css"/>
    <plugin id="org.apache.batik.util"/>
    <plugin id="org.apache.batik.util.gui"/>
    

    【讨论】:

    • 我还将它添加到运行配置中以使其工作
    【解决方案3】:

    我遇到了同样的问题。 使用 E4 工具,以下步骤对我有用。 打开 .product 文件并转到 Dependencies 选项卡。然后按添加所需插件。 然后转到 Overview 并按 Launch an Eclipse application。 你也应该做帮助->检查更新

    【讨论】:

      【解决方案4】:

      我去了我的运行配置并点击Add Required Plug-Ins 之一Plug-Ins 页面。解决了问题。

      【讨论】:

        【解决方案5】:

        我在启动项目时遇到了类似的异常。在我的情况下,原因是 JRE 版本 - 我在调试配置中设置了 JRE 1.7 而不是 1.6,并且事情开始起作用了。我相信同样的事情也会发生,如果项目是为 OpenJDK 1.6 配置的,并且调试使用 sun-JDK 1.6 启动它。

        【讨论】:

          【解决方案6】:

          查看 Dependencies 选项卡,并删除在 Plug-ins 和 Fragments 中显示为 unresolved 的额外插件。

          【讨论】:

            【解决方案7】:

            这基本上意味着,在启动 eclipse 程序时,运行配置中所选产品的 id 未在插件集中预设:

            【讨论】:

              猜你喜欢
              • 2022-08-04
              • 2014-07-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-04-10
              • 1970-01-01
              相关资源
              最近更新 更多