我正在通过" 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>
更新
另一个观察:当我启动运行配置以在启动之前自动验证插件时,我得到:
然后,如果我在插件执行环境中删除JavaSE-1.7条目,从而使EE列表为空,则缺少的依赖项的数量将减少为:
但我还没弄清楚如何解决这种依赖关系。产品中的“内容”选项卡不允许我添加它。我可以将它添加到插件和todo.feature,但这会增加缺少的依赖项的数量。我可以尝试继续添加插件和功能中的依赖项列表,但这似乎不是教程的建议。我觉得我错过了一些基本的东西。
答案 0 :(得分:0)
我觉得你错过的基本步骤可能是设置'目标平台'。 转到Windows - &gt;首选项 - &gt;目标平台(搜索) 参考 Target Platform
如果Target Platform窗口中没有可用的条目,则单击Add - &gt;当前目标:从当前目标平台复制设置 - &gt;地点 这将是eclipse存在的机器位置 参考 Setting Eclipse location