无法打开导出的 e4 RCP 应用程序,因为 "damaged or incomplete" (OSX)

Exported e4 RCP application can't be open because "damaged or incomplete" (OSX)

我对 e4 Java 开发比较陌生。我已经构建了一个基于 RCP 的应用程序,它在调试时运行或通过 Eclipse IDE (Neon) 运行。但是,当我导出应用程序进行部署时,单击导出的启动器时会出现错误 ("You can't open the application [application name] because it may be damaged or incomplete")。我还尝试通过创建一个空的 RCP 应用程序来重现错误,但出现了同样的问题。在这两种情况下,我都检查了 "The product includes native launcher artifacts".

知道问题出在哪里吗?

产品文件:

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

<product name="Pearl" uid="pearl" id="Information_Extraction_Workbench.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">


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

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

   <windowImages/>


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


   <vm>
   </vm>


   <plugins>
      <plugin id="Information_Extraction_Workbench"/>
      <plugin id="com.ibm.icu"/>
      <plugin id="javax.annotation"/>
      <plugin id="javax.inject"/>
      <plugin id="javax.servlet"/>
      <plugin id="javax.xml"/>
      <plugin id="org.apache.batik.css"/>
      <plugin id="org.apache.batik.util"/>
      <plugin id="org.apache.batik.util.gui"/>
      <plugin id="org.apache.commons.jxpath"/>
      <plugin id="org.apache.commons.logging"/>
      <plugin id="org.eclipse.ant.core"/>
      <plugin id="org.eclipse.core.commands"/>
      <plugin id="org.eclipse.core.contenttype"/>
      <plugin id="org.eclipse.core.databinding"/>
      <plugin id="org.eclipse.core.databinding.beans"/>
      <plugin id="org.eclipse.core.databinding.observable"/>
      <plugin id="org.eclipse.core.databinding.property"/>
      <plugin id="org.eclipse.core.expressions"/>
      <plugin id="org.eclipse.core.filesystem"/>
      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.java7" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.jobs"/>
      <plugin id="org.eclipse.core.resources"/>
      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
      <plugin id="org.eclipse.core.runtime"/>
      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
      <plugin id="org.eclipse.core.variables"/>
      <plugin id="org.eclipse.e4.core.commands"/>
      <plugin id="org.eclipse.e4.core.contexts"/>
      <plugin id="org.eclipse.e4.core.di"/>
      <plugin id="org.eclipse.e4.core.di.annotations"/>
      <plugin id="org.eclipse.e4.core.di.extensions"/>
      <plugin id="org.eclipse.e4.core.services"/>
      <plugin id="org.eclipse.e4.emf.xpath"/>
      <plugin id="org.eclipse.e4.ui.bindings"/>
      <plugin id="org.eclipse.e4.ui.css.core"/>
      <plugin id="org.eclipse.e4.ui.css.swt"/>
      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
      <plugin id="org.eclipse.e4.ui.di"/>
      <plugin id="org.eclipse.e4.ui.model.workbench"/>
      <plugin id="org.eclipse.e4.ui.services"/>
      <plugin id="org.eclipse.e4.ui.widgets"/>
      <plugin id="org.eclipse.e4.ui.workbench"/>
      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench3"/>
      <plugin id="org.eclipse.emf.common"/>
      <plugin id="org.eclipse.emf.databinding"/>
      <plugin id="org.eclipse.emf.ecore"/>
      <plugin id="org.eclipse.emf.ecore.change"/>
      <plugin id="org.eclipse.emf.ecore.xmi"/>
      <plugin id="org.eclipse.equinox.app"/>
      <plugin id="org.eclipse.equinox.bidi"/>
      <plugin id="org.eclipse.equinox.common"/>
      <plugin id="org.eclipse.equinox.concurrent"/>
      <plugin id="org.eclipse.equinox.ds"/>
      <plugin id="org.eclipse.equinox.event"/>
      <plugin id="org.eclipse.equinox.preferences"/>
      <plugin id="org.eclipse.equinox.registry"/>
      <plugin id="org.eclipse.equinox.util"/>
      <plugin id="org.eclipse.help"/>
      <plugin id="org.eclipse.jface"/>
      <plugin id="org.eclipse.jface.databinding"/>
      <plugin id="org.eclipse.nebula.widgets.tablecombo"/>
      <plugin id="org.eclipse.osgi"/>
      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
      <plugin id="org.eclipse.osgi.services"/>
      <plugin id="org.eclipse.swt"/>
      <plugin id="org.eclipse.swt.carbon.macosx" fragment="true"/>
      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.motif.aix.ppc" fragment="true"/>
      <plugin id="org.eclipse.swt.motif.hpux.ia64_32" fragment="true"/>
      <plugin id="org.eclipse.swt.motif.linux.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.motif.solaris.sparc" fragment="true"/>
      <plugin id="org.eclipse.swt.photon.qnx.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.ui"/>
      <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
      <plugin id="org.eclipse.ui.forms"/>
      <plugin id="org.eclipse.ui.themes"/>
      <plugin id="org.eclipse.ui.workbench"/>
      <plugin id="org.eclipse.wst.jsdt.nashorn.extension" fragment="true"/>
      <plugin id="org.w3c.css.sac"/>
      <plugin id="org.w3c.dom.events"/>
      <plugin id="org.w3c.dom.smil"/>
      <plugin id="org.w3c.dom.svg"/>
   </plugins>


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

   <cssInfo>
      <file path="/Information Extraction Workbench/css/default.css"/>
   </cssInfo>

</product>

这是另一个错误也重复的应用程序(最小示例)

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

<product name="com.example.e4.rcp.wizard" uid="blah" id="com.example.e4.rcp.wizard.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">


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

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

   <windowImages/>


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


   <vm>
      <macos include="true">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</macos>
   </vm>


   <plugins>
      <plugin id="com.example.e4.rcp.wizard"/>
      <plugin id="com.ibm.icu"/>
      <plugin id="javax.annotation"/>
      <plugin id="javax.inject"/>
      <plugin id="javax.servlet"/>
      <plugin id="javax.xml"/>
      <plugin id="org.apache.batik.css"/>
      <plugin id="org.apache.batik.util"/>
      <plugin id="org.apache.batik.util.gui"/>
      <plugin id="org.apache.commons.jxpath"/>
      <plugin id="org.apache.commons.logging"/>
      <plugin id="org.eclipse.ant.core"/>
      <plugin id="org.eclipse.core.commands"/>
      <plugin id="org.eclipse.core.contenttype"/>
      <plugin id="org.eclipse.core.databinding"/>
      <plugin id="org.eclipse.core.databinding.beans"/>
      <plugin id="org.eclipse.core.databinding.observable"/>
      <plugin id="org.eclipse.core.databinding.property"/>
      <plugin id="org.eclipse.core.expressions"/>
      <plugin id="org.eclipse.core.filesystem"/>
      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.hpux.ia64_32" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.core.jobs"/>
      <plugin id="org.eclipse.core.resources"/>
      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
      <plugin id="org.eclipse.core.runtime"/>
      <plugin id="org.eclipse.core.variables"/>
      <plugin id="org.eclipse.e4.core.commands"/>
      <plugin id="org.eclipse.e4.core.contexts"/>
      <plugin id="org.eclipse.e4.core.di"/>
      <plugin id="org.eclipse.e4.core.di.annotations"/>
      <plugin id="org.eclipse.e4.core.di.extensions"/>
      <plugin id="org.eclipse.e4.core.services"/>
      <plugin id="org.eclipse.e4.emf.xpath"/>
      <plugin id="org.eclipse.e4.ui.bindings"/>
      <plugin id="org.eclipse.e4.ui.css.core"/>
      <plugin id="org.eclipse.e4.ui.css.swt"/>
      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
      <plugin id="org.eclipse.e4.ui.di"/>
      <plugin id="org.eclipse.e4.ui.model.workbench"/>
      <plugin id="org.eclipse.e4.ui.services"/>
      <plugin id="org.eclipse.e4.ui.swt.gtk" fragment="true"/>
      <plugin id="org.eclipse.e4.ui.widgets"/>
      <plugin id="org.eclipse.e4.ui.workbench"/>
      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
      <plugin id="org.eclipse.e4.ui.workbench3"/>
      <plugin id="org.eclipse.emf.common"/>
      <plugin id="org.eclipse.emf.databinding"/>
      <plugin id="org.eclipse.emf.ecore"/>
      <plugin id="org.eclipse.emf.ecore.change"/>
      <plugin id="org.eclipse.emf.ecore.xmi"/>
      <plugin id="org.eclipse.equinox.app"/>
      <plugin id="org.eclipse.equinox.bidi"/>
      <plugin id="org.eclipse.equinox.common"/>
      <plugin id="org.eclipse.equinox.concurrent"/>
      <plugin id="org.eclipse.equinox.ds"/>
      <plugin id="org.eclipse.equinox.event"/>
      <plugin id="org.eclipse.equinox.preferences"/>
      <plugin id="org.eclipse.equinox.registry"/>
      <plugin id="org.eclipse.equinox.util"/>
      <plugin id="org.eclipse.jface"/>
      <plugin id="org.eclipse.jface.databinding"/>
      <plugin id="org.eclipse.osgi"/>
      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
      <plugin id="org.eclipse.osgi.services"/>
      <plugin id="org.eclipse.swt"/>
      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
      <plugin id="org.eclipse.wst.jsdt.nashorn.extension" fragment="true"/>
      <plugin id="org.w3c.css.sac"/>
      <plugin id="org.w3c.dom.events"/>
      <plugin id="org.w3c.dom.smil"/>
      <plugin id="org.w3c.dom.svg"/>
   </plugins>


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

   <cssInfo>
   </cssInfo>

</product>

这是Eclipse要发送的编译后出现的错误信息:

The following report will be sent to Eclipse:

------ 状态 ------ pluginId org.eclipse.pde.build pluginVersion 3.9.200.v20160204-0642 code 17 severity 4 message HIDDEN fingerprint
307801a13ac4d782070cb3fca93512d0

异常:org.eclipse.core.runtime.CoreException:隐藏于 org.eclipse.pde.internal.build.site.BuildTimeFeatureFactory.parseBuildFeature(BuildTimeFeatureFactory.java:85) 在 org.eclipse.pde.internal.build.site.BuildTimeFeatureFactory.createFeature(BuildTimeFeatureFactory.java:50) 在 org.eclipse.pde.internal.build.site.BuildTimeSite.createFeature(BuildTimeSite.java:458) 在 org.eclipse.pde.internal.build.site.compatibility.FeatureReference.getFeature(FeatureReference.java:39) 在 org.eclipse.pde.internal.build.site.BuildTimeSite.resolveFeatureReferences(BuildTimeSite.java:316) 在 org.eclipse.pde.internal.build.site.BuildTimeSite.findFeature(BuildTimeSite.java:285) 在 org.eclipse.pde.internal.build.site.BuildTimeSite.findFeature(BuildTimeSite.java:277) 在 org.eclipse.pde.internal.build.BuildScriptGenerator.generateFeatures(BuildScriptGenerator.java:249) 在 org.eclipse.pde.internal.build.BuildScriptGenerator.generate(BuildScriptGenerator.java:127) 在 org.eclipse.pde.internal.core.exports.FeatureExportOperation.doExport(FeatureExportOperation.java:255) 在 org.eclipse.pde.internal.core.exports.ProductExportOperation.run(ProductExportOperation.java:105) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

------ 状态 ------ pluginId org.eclipse.equinox.p2.publisher.eclipse pluginVersion 1.2.100.v20160504-1450 code 17 严重性 4 消息隐藏指纹
b9f4abf3b28ea9e6b7a2483f4ff27615

------ 状态 ------ pluginId org.eclipse.equinox.p2.publisher.eclipse pluginVersion 1.2.100.v20160504-1450 code 17 严重性 4 消息隐藏指纹
465298c82a36dba3f729743e02a61485

------ 报告 ------ anonymousId adc23f85-e164-4e7d-93ee-1d0b8861a2d7 name Mona email [email] comment eclipseBuildId
4.6.0.I20160606-1100 eclipseProduct org.eclipse.epp.package.jee.product javaRuntimeVersion 1.8.0_92-b14 osgiWs cocoa osgiOs MacOSX osgiOsVersion
10.11.5 osgiArch x86_64 严重性未知

-------- 捆绑包 ------ 名称org.eclipse.core.jobs 版本3.8.0.v20160509-0411

名称org.eclipse.pde.build版本
3.9.200.v20160204-0642

名称org.eclipse.pde版本
3.12.0.v20160606-1100

名称org.eclipse.pde.核心版本
3.11.0.v20160510-1223

诚然,我放弃了基于 UI 的方法来创建构建。相反,我只是赶上并学习了基于 Tycho 的方法来创建可部署的可执行文件——尽管它需要对项目配置进行一些调整。

不错的新手教程: https://simplejavablog.eu/2016/03/22/eclipse-rcp-part-1/