Search code examples
eclipseeclipse-plugineclipse-rcpe4

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


I am relatively new to the e4 Java development. I have built an RCP-based application which runs when debugging or running through the Eclipse IDE (Neon). However, when I export the application for deployment, the exported launcher when clicked gives me an error ("You can't open the application [application name] because it may be damaged or incomplete"). I have also attempted to recreate the error by creating an empty RCP application and the same issue appears. In both of these cases, I have checked "The product includes native launcher artifacts".

Any idea of what the issue might be?

Product file:

<?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>

This is the other application (minimal example) where error also duplicated

<?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>

This is the error message that appeared after compilation that Eclipse wanted to send:

The following report will be sent to Eclipse:

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

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

------ STATUS ------ pluginId org.eclipse.equinox.p2.publisher.eclipse pluginVersion 1.2.100.v20160504-1450 code 17 severity 4 message HIDDEN fingerprint
b9f4abf3b28ea9e6b7a2483f4ff27615

------ STATUS ------ pluginId org.eclipse.equinox.p2.publisher.eclipse pluginVersion 1.2.100.v20160504-1450 code 17 severity 4 message HIDDEN fingerprint
465298c82a36dba3f729743e02a61485

------ REPORT ------ 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 severity UNKNOWN

------- BUNDLES ------- name org.eclipse.core.jobs version 3.8.0.v20160509-0411

name org.eclipse.pde.build version
3.9.200.v20160204-0642

name org.eclipse.pde version
3.12.0.v20160606-1100

name org.eclipse.pde.core version
3.11.0.v20160510-1223


Solution

  • Admittedly, I gave up on the UI-based method to create a build. Instead I just caught up and learned the Tycho-based approach to create a deploy-able executable - even though it required some tweaking with the project configuration.

    Good beginner tutorial: https://simplejavablog.eu/2016/03/22/eclipse-rcp-part-1/