依赖问题设置基于eclipse特征的RCP应用程序

时间:2015-12-18 17:37:48

标签: java eclipse rcp

我正在通过" Todo"在Vogella Eclipse RCP一书(第3版)中基于特征的RCP练习("从插件到Eclipse RCP"),我无法启动该应用程序。据我了解,练习的目的是从一个插件项目开始,并使用插件作为应用程序的基础,手动构建一个简单的基于功能的RCP应用程序。我在Mac上运行Mars版本(4.5.1)。我得到的错误是:

  

!SESSION Fri Dec 18 07:57:00 EST 2015   ------------------------------------------!ENTRY org.eclipse.equinox。发射器4 0 2015-12-18 07:57:00.091!消息   启动Eclipse平台的异常:!STACK   抛出java.lang.ClassNotFoundException:   org.eclipse.core.runtime.adaptor.EclipseStarter at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)at   

java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)      

等...

问题可能与缺少依赖关系有关,我追溯到两个相关的观察。

首先,todo.product编辑器不包含书中所述的Dependencies选项卡。相反,“内容”选项卡包含构成产品的功能列表。在那个编辑器/选项卡中,当我点击" Add Required"按钮,没有任何反应。我可以使用"添加"添加功能。按钮。本书的第3版要求用户使用" Add"按钮添加功能和其他三个非功能的依赖项。但是添加功能的对话框只允许我添加功能。没有其他匹配项目,添加功能后匹配项目列表为空。

其次,虽然我的feature.xml包含插件,但todo.product文件不包含插件:

<?xml version="1.0" encoding="UTF-8"?>
<feature
      id="com.example.e4.rcp.todo.feature"
      label="Feature"
      version="1.0.0.qualifier"
      provider-name="EXAMPLE">

   <description url="http://www.example.com/description">
      [Enter Feature Description here.]
   </description>

   <copyright url="http://www.example.com/copyright">
      [Enter Copyright Description here.]
   </copyright>

   <license url="http://www.example.com/license">
      [Enter License Description here.]
   </license>

   <plugin
         id="com.example.e4.rcp.todo"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>

</feature>

有没有人对我可以尝试或调查过什么有任何建议?

编辑---添加了产品文件的内容---

<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<product name="to-do" uid="product" id="com.example.e4.rcp.todo.product"                 application="org.eclipse.e4.ui.workbench.swt.E4Application" useFeatures="true"           includeLaunchers="true">

   <configIni use="default">
   </configIni>

   <launcherArgs>
      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
      </vmArgsMac>
   </launcherArgs>

   <windowImages/>

   <launcher name="todo">
      <solaris/>
      <win useIco="false">
         <bmp/>
      </win>
   </launcher>

   <vm>
   </vm>

   <plugins>
   </plugins>

   <features>
      <feature id="com.example.e4.rcp.todo.feature"/>
   </features>

   <configurations>
      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true"            startLevel="0" />
      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true"               startLevel="1" />
   </configurations>

   <preferencesInfo>
      <targetfile overwrite="false"/>
   </preferencesInfo>

   <cssInfo>
   </cssInfo>

</product>

更新

另一个观察:当我启动运行配置以在启动之前自动验证插件时,我得到: enter image description here

然后,如果我在插件执行环境中删除JavaSE-1.7条目,从而使EE列表为空,则缺少的依赖项的数量将减少为:

enter image description here

但我还没弄清楚如何解决这种依赖关系。产品中的“内容”选项卡不允许我添加它。我可以将它添加到插件和todo.feature,但这会增加缺少的依赖项的数量。我可以尝试继续添加插件和功能中的依赖项列表,但这似乎不是教程的建议。我觉得我错过了一些基本的东西。

1 个答案:

答案 0 :(得分:0)

我觉得你错过的基本步骤可能是设置'目标平台'。 转到Windows - &gt;首选项 - &gt;目标平台(搜索) 参考 Target Platform

如果Target Platform窗口中没有可用的条目,则单击Add - &gt;当前目标:从当前目标平台复制设置 - &gt;地点 这将是eclipse存在的机器位置 参考 Setting Eclipse location