Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse4应用程序/插件中的功能是可选的还是非可选的?_Java_Eclipse_Eclipse Plugin_Swt_Eclipse Rcp - Fatal编程技术网

Java Eclipse4应用程序/插件中的功能是可选的还是非可选的?

Java Eclipse4应用程序/插件中的功能是可选的还是非可选的?,java,eclipse,eclipse-plugin,swt,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Swt,Eclipse Rcp,我试图理解eclipsee4对于RCP的概念。 阅读完本教程后,我陷入了以下困境: 假设我创建了一个插件项目(没有未选中的富客户机、Actvator,因此/src等下没有类) 插件是Eclipse中最小的可部署和可安装的软件组件。好的。 现在我可以创建一个产品配置,它基于插件或功能 因此,产品配置提供了插件等,如果我理解正确,功能是可选的。假设我是正确的(不知道,是吗?),我将依赖项添加到产品配置中: org.eclipse.emf.common和org.eclipse.emf.ecore并按添

我试图理解eclipse
e4
对于RCP的概念。
阅读完本教程后,我陷入了以下困境:
假设我创建了一个
插件
项目(没有未选中的富客户机、Actvator,因此/src等下没有类)
插件是Eclipse中最小的可部署和可安装的软件组件。好的。
现在我可以创建一个
产品配置
,它基于
插件
功能

因此,
产品配置
提供了插件等,如果我理解正确,
功能
是可选的。假设我是正确的(不知道,是吗?),我将依赖项添加到产品配置中:
org.eclipse.emf.common
org.eclipse.emf.ecore
并按
添加所需插件

我的产品混淆被选择为基于插件的
现在我不明白的是,如果我没有将插件定义为依赖项的一部分,那么在运行应用程序时就会丢失一个插件(在运行之前我已经检查了验证插件)。但是为什么呢?该插件已在产品定义(新)中定义为“定义插件”。为什么我还要在这里明确地添加它

无论如何,当我尝试启动一个窗口时(是的,我创建了一个
新的应用程序模型
,并定义了一个
修剪过的窗口
),我得到了运行时异常

java.lang.RuntimeException: Application "org.eclipse.e4.ui.workbench.swt.E4Application" could not be found in the registry. The applications available are: org.eclipse.equinox.app.error.
    at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:248)
    at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
我只能假设发生这种情况是因为缺少一个插件:
org.eclipse.e4.ui.workbench.swt
(我之所以会这样是因为启用了插件验证)

为什么我会得到这个例外?我相信我得到了它,因为我没有将
org.eclipse.e4.rcp
添加为依赖项。
但我找不到这个选项。结果表明,仅当产品配置是基于功能的
时,此选项才可用。它不适用于插件。
此外,相同的过程,但定义一个
功能
,并将其作为依赖项“附加”到产品配置工作!即,无运行时异常,窗口显示

那么发生了什么?功能是强制性的吗?我不明白。我认为它们是可选的。有人能帮我弄清楚吗

更新:
如果我在
产品中手动添加
org.eclipse.e4.ui.workbench.swt
作为依赖项(并按add required),我会得到:


如果您要在Eclipse4上创建基于插件的产品,那么仍然需要包含org.Eclipse.e4.rcp特性的大多数插件。尝试从

中的列表中添加它们,因此问题确实是缺少了
org.eclipse.e4.rcp
,但是为什么只有当
产品
基于
功能
时它才起作用呢?根据
功能
是可选的,你是对的。
产品->依赖项选项卡
中缺少了4-5个,这是你在回答中发布的列表的一部分。对不起,我是eclipse开发的新手。这意味着什么
功能是可选的,但我必须手动添加所有这些功能才能工作?因此建议的方法是始终使用
功能
?从不基于插件?我的意思是,在添加额外组件后,窗口打开时不会出错。产品定义只能使用插件,但eclipse SDK本身使用功能,这就是它的目标。我使用的是eclipse SDK,所以我
必须
也使用功能,我想你是这么说的。
!ENTRY org.eclipse.osgi 2 0 2012-08-20 18:36:52.044
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2012-08-20 18:36:52.044
!MESSAGE Bundle initial@reference:file:plugins/org.eclipse.e4.ui.workbench.swt_0.10.1.v20120525-2014.jar was not resolved.
!SUBENTRY 2 org.eclipse.e4.ui.workbench.swt 2 0 2012-08-20 18:36:52.044
!MESSAGE Missing required bundle org.eclipse.core.databinding_[1.2.0,2.0.0).