How do I run a standalone Google AppEngine project using DataNucleus JPA in an Eclipse executable JAR? The customer will run it, so it needs to be packaged. It accesses the local file system so it can't be a web app. I'm not using Maven, just Eclipse Project > Export > Executable JAR (and the Ant script it makes). It works of course when run from within Eclipse. When I run the JAR, I get the following DataNucleus errors:
Caused by: java.io.FileNotFoundException: rsrc:datanucleus-api-jdo-3.1.3.jar (The system cannot find the file specified)
Caused by: org.datanucleus.exceptions.NucleusException: Error reading manifest file "jar:rsrc:datanucleus-api-jdo-3.1.3.jar!/plugin.xml"
javax.persistence.PersistenceException: Explicit persistence provider error(s) occurred for "transactions-optional" after trying the following discovered implementations: org.datanucleus.api.jpa.PersistenceProviderImpl from provider: org.datanucleus.api.jpa.PersistenceProviderImpl
Full Stack Trace
javax.persistence.PersistenceException: Explicit persistence provider error(s) occurred for "transactions-optional" after trying the following discovered implementations: org.datanucleus.api.jpa.PersistenceProviderImpl from provider: org.datanucleus.api.jpa.PersistenceProviderImpl
at javax.persistence.Persistence.createPersistenceException(Persistence.java:242)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:184)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:70)
at com.mwv.pic.dao.EMF.getInstance(EMF.java:26)
at com.mwv.pic.dao.SecondaryDocumentsDao.isSecondaryDocumentUniqueByTitle(SecondaryDocumentsDao.java:80)
at com.mwv.pic.dao.SecondaryDocumentsDao.addSecondaryDocument(SecondaryDocumentsDao.java:53)
at com.mwv.Import.createSecondaryDocument(Import.java:294)
at com.mwv.Import.importAllFiles(Import.java:234)
at com.mwv.Main$6.run(Main.java:220)
at java.lang.Thread.run(Unknown Source)
Caused by: org.datanucleus.exceptions.NucleusException: Error reading manifest file "jar:rsrc:datanucleus-api-jdo-3.1.3.jar!/plugin.xml"
at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:482)
at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensions(NonManagedPluginRegistry.java:219)
at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensionPoints(NonManagedPluginRegistry.java:160)
at org.datanucleus.plugin.PluginManager.<init>(PluginManager.java:65)
at org.datanucleus.plugin.PluginManager.createPluginManager(PluginManager.java:427)
at org.datanucleus.api.jpa.JPAEntityManagerFactory.<init>(JPAEntityManagerFactory.java:328)
at org.datanucleus.api.jpa.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:91)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:150)
... 8 more
Caused by: java.io.FileNotFoundException: rsrc:datanucleus-api-jdo-3.1.3.jar (The system cannot find the file specified)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at java.util.jar.JarFile.<init>(Unknown Source)
at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:390)
... 15 more
Code, EMF.java:26
instance = Persistence.createEntityManagerFactory("transactions-optional");
JAR files contents

META-INF/MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Created-By: 1.7.0_17-b02 (Oracle Corporation)
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
Rsrc-Main-Class: com.mwv.Main
Rsrc-Class-Path: ./ google-api-services-drive-v2-rev107-1.16.0-rc.jar
... a hundred JARs ...
Class-Path: .