Eclipse Juno:如何调试"找不到应用ID,#34;

时间:2017-09-02 18:05:30

标签: eclipse eclipse-plugin rcp

情况:

  • 我使用Eclipse Juno构建Eclipse产品。
  • 平台是Linux 32位。
  • 启动器的C代码被扩展,因此被重新编译。 (我想,这不会导致问题)
  • 该产品不是使用Eclipse的机制构建的 - 我使用构建脚本将所有组件放在一起(如Eclipse插件,我自己的产品等等)。

问题:

Eclipse-launcher失败如下:

!ENTRY org.eclipse.equinox.app 0 0 2017-09-02 19:27:12.650 !找不到产品eu.esa.estec.esabase2.product。

!ENTRY org.eclipse.osgi 4 0 2017-09-02 19:27:12.667 !MESSAGE应用程序错误 !堆栈1 java.lang.RuntimeException:找不到应用程序ID。     在org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242)     在org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)     在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)     在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)     在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)     在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:606)     在org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)     在org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)     在org.eclipse.equinox.launcher.Main.run(Main.java:1438)

问题: eclipse在启动时如何查找产品和应用程序ID?如何调试或解决由我的脚本构建的Eclipse-product 中的问题? (我是否需要配置某个路径或将ID或名称放在某处?我在Linux下)。

P.S。我没有发明产品的构建方式,目前无法改变这一点。

1 个答案:

答案 0 :(得分:0)

EclipseAppContainer期望在安装eclipse.product目录的config.ini文件中的configuration属性中指定应用程序标识。它还将接受-application命令行参数。

通过查看所有已安装的插件并查找使用org.eclipse.core.runtime.products扩展点声明的产品,可以找到产品ID。

由于某些问题(如缺少依赖关系或要求)而无法正确安装的插件不予考虑。

{plunts.xml}中的org.eclipse.core.runtime.products用于其中一个插件。例如:

<?xml version="1.0" encoding="UTF-8"?>
<plugin>
   <extension
         id="product"
         point="org.eclipse.core.runtime.products">
      <product
            name="product name"
            application="application id">

      ... any properties for the product

      </product>
   </extension>

如果这是带有id&#39; my.plugin&#39;的插件。那么完整的产品ID就是&#39; my.plugin.product&#39;。对于您的产品,这可能会在eu.esa.estec.esabase2插件中声明。