2017-09-02 106 views
0

情況:的Eclipse朱諾:如何調試 「沒有應用程序ID已被發現」

  • 我建立一個Eclipse的產品與Eclipse朱諾。
  • 平臺是Linux 32bit。
  • 啓動器的C代碼被擴展,因此重新編譯。 (我猜,這不會導致問題)
  • 該產品不是用Eclipse的機制構建的 - 我使用構建腳本將所有組件集合在一起(如Eclipse插件,我自己的產品以及更多) 。

問題:

基於Eclipse的啓動程序如下失敗:

ENTRY org.eclipse.equinox.app 0 0 2017年9月2日19:27:12.650 ! MESSAGE Product eu.esa.estec.esabase2.product找不到。

ENTRY org.eclipse.osgi 4 0 2017年9月2日19:27:12.667 消息應用錯誤 STACK 1 了java.lang.RuntimeException:沒有應用程序ID已被發現。在org.eclipse上的org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29) 上的org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:242) ( )。 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。運行時.adaptor.EclipseStarter.run(EclipseStarter.java:353) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at 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產品中調試或解決問題? (我是否需要配置某個路徑或將ID或名稱放在某處?我在Linux下)。

P.S.我沒有發明產品的構建方式,目前無法改變。

回答

0

EclipseAppContainer預期的應用程序ID,以在config.ini文件eclipse.product物業在安裝configuration目錄中指定。它也會接受一個-application命令行參數。

通過查看所有安裝的插件並查找使用org.eclipse.core.runtime.products擴展點聲明的產品來查找產品id。

由於某些問題(如缺少依賴關係或要求)而無法正確安裝的插件未被考慮。

org.eclipse.core.runtime.products用於其中一個插件的plugin.xml。例如:

<?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爲「my.plugin」插件,然後完整的產品ID將是「my.plugin.product」。對於您的產品,這可能會在eu.esa.estec.esabase2插件中聲明。

+0

該id在config.ini中的eclipse.product屬性中指定。第一個錯誤消息提到了id(「eu.esa.estec.esabase2.product」)。問題是,爲什麼沒有找到產品? eclipse在哪些地方查找產品?它是如何識別的? – Matthias

+0

添加產品ID搜索的詳細信息。 –

+0

因此,_plugins_文件夾中有一個文件夾,其中包含_.product_文件。這個文件包含了Eclipse聲明的id,找不到它。 沒有其他錯誤消息。我可以因此假設產品加載不會因爲缺少依賴關係而失敗嗎? 還有什麼可能是Eclipse未找到此產品的原因? – Matthias