0

我遇到了一个非常奇怪的错误。这就是我所做的:

我创建了一个项目(使用 Netbeans),其中包括 datanucleuse-core-3.0.0-release.jar。该项目可以成功构建。当我尝试使用 Netbeans 运行它或通过命令提示符在 dist 文件夹中运行“java -jar <.jar bundle>”时,它也运行顺利。

问题是,当我将该 dist 文件夹复制到另一个位置并尝试使用命令提示符再次运行它时,它给出了以下错误:

线程“main”中的异常 读取清单文件“jar:file:/E:/!new/BTJ/NCRServer/lib/datanucleus-core-3.0.0-release.jar!/plugin.xml”时出错 org.datanucleus.exceptions .NucleusException:在 org.datanucleus.plugin 读取清单文件“jar:file:/E:/!new/BTJ/NCRServer/lib/datanucleus-core-3.0.0-release.jar!/plugin.xml”时出错。 NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:481) at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensions(No nManagedPluginRegistry.java:219) at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensionPoin ts(NonManagedPluginRegistry.java:160) at org. datanucleus.plugin.PluginManager.(PluginManager.java:62) 在 org.datanucleus.NucleusContext.(NucleusContext.java:211) 在 org.datanucleus.NucleusContext.(NucleusContext.java:166) at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.(JDOPersis tenceManagerFactory.java:360) at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenc eManagerFactory(JDOPersistenceManagerFactory.java:290)在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceMa nagerFactory(JDOPersistenceManagerFactory.java:191) 在 com.ncr.server.Server.(Server.java:68) 在 com.ncr.server.Server.main(Server.java :91) 原因:java.io.FileNotFoundException: E:\ (系统找不到指定的路径) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile .java:114) 在 java.util.jar.JarFile.(JarFile.java:135) 在 java.util.jar.JarFile.(JarFile.java:99) at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:390) ... 10 多个嵌套 Throwables StackTrace: java.io.FileNotFoundException: E:\ (系统找不到指定的路径) at java. util.zip.ZipFile.open(Native Method) 在 java.util.zip.ZipFile.(ZipFile.java:114) 在 java.util.jar.JarFile.(JarFile.java:135) 在 java.util.jar。 JarFile.(JarFile.java:99) 在 org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:390) 在 org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensions(No nManagedPluginRegistry.java:219) 在 org.datanucleus。 plugin.NonManagedPluginRegistry.registerExtensionPoints(NonManagedPluginRegistry.java:160) 在 org.datanucleus.plugin。PluginManager.(PluginManager.java:62) at org.datanucleus.NucleusContext.(NucleusContext.java:211) at org.datanucleus.NucleusContext.(NucleusContext.java:166) at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.(JDOPersis tenceManagerFactory.java:360) at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenc eManagerFactory(JDOPersistenceManagerFactory.java:290) at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceMa nagerFactory(JDOPersistenceManagerFactory.java:191) at com.ncr .server.Server.(Server.java:68) 在 com.ncr.server.Server.main(Server.java:91)166) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenc eManagerFactory(JDOPersistenceManagerFactory.java:290) 在 org.datanucleus.api.jdo 的 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.(JDOPersis tenceManagerFactory.java:360)。 JDOPersistenceManagerFactory.getPersistenceM nagerFactory(JDOPersistenceManagerFactory.java:191) 在 com.ncr.server.Server.(Server.java:68) 在 com.ncr.server.Server.main(Server.java:91)166) 在 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenc eManagerFactory(JDOPersistenceManagerFactory.java:290) 在 org.datanucleus.api.jdo 的 org.datanucleus.api.jdo.JDOPersistenceManagerFactory.(JDOPersis tenceManagerFactory.java:360)。 JDOPersistenceManagerFactory.getPersistenceM nagerFactory(JDOPersistenceManagerFactory.java:191) 在 com.ncr.server.Server.(Server.java:68) 在 com.ncr.server.Server.main(Server.java:91)getPersistenceMa nagerFactory(JDOPersistenceManagerFactory.java:191) 在 com.ncr.server.Server.(Server.java:68) 在 com.ncr.server.Server.main(Server.java:91)getPersistenceMa nagerFactory(JDOPersistenceManagerFactory.java:191) 在 com.ncr.server.Server.(Server.java:68) 在 com.ncr.server.Server.main(Server.java:91)

有人有线索吗?

4

1 回答 1

0

真的很对不起大家,尤其是 StackOverflow 中的 datanucleus 成员。

显然问题出在我身上,而不是 netbeans、datanucleus API,也不是任何人。从“jar:file:/E:/!new/BTJ/NCRServer/lib/datanucleus-core-3.0.0-release.jar!/plugin.xml”中可以看到,我将“dist”文件夹从 Netbeans在“E:/!new”文件夹中。我不知道为什么,但是“!new”文件夹似乎会导致“release.jar!”中出现额外的感叹号(!)。

我将 dist 文件夹移动到 D:/ 并且它有效!

因此,如果有人遇到过这个问题(文件夹名称前面带有感叹号,并且不小心在其中放置了一个带有 datanucleus-core-3.0.0-release.jar 的项目),那就是解决方案。

谢谢你。

于 2012-08-02T04:33:38.777 回答