从自定义类导入时,无法对XMLBeans jar进行签名

在NetBeans中,我创建了一个Exporter类,它使用APACHE POI将一些数据导出到EXCEL文件,该文件使用XMLBeans。

我通过下载zip二进制文件并手动添加jar来添加APACHE POI 3.10.1库。

当我在同一个项目中使用这个类时,一切都正常运行。

然后我通过右键单击Libraries – > Add Project将此类添加到另一个项目中。

但是当我尝试运行时,我在编译时遇到以下错误。

Signing JAR: C:\Users\c\p\dist\lib\xmlbeans-2.6.0.jar to C:\Users\c\p\dist\lib\xmlbeans-2.6.0.jar as nb-jfx jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: org/apache/xmlbeans/xml/stream/Location.class Enter Passphrase for keystore: Enter key password for nb-jfx: C:\Users\c\p\nbproject\jfx-impl.xml:1465: The following error occurred while executing this line: C:\Users\c\p\nbproject\jfx-impl.xml:2968: The following error occurred while executing this line: C:\Users\c\p\nbproject\jfx-impl.xml:1940: jarsigner returned: 1 

我不知道这可能是什么,但让我发疯。

在XMLBEANS Jira中打开了一个定义此问题的错误。 https://issues.apache.org/jira/browse/XMLBEANS-499 ,其中一条评论报告修复。 我还没试过,但我正在这样做。 一探究竟。

更新:已解决。 事后看来,解决方案是显而易见的,但如果正确创建了.jar,那就很痛苦。 解压缩(我只是将.jar扩展名更改为.zip并继续).jar将删除重复的.class文件(本例中为8),然后使用jar工具重新创建.jar文件。 该命令是:“jar cf(path)\ xmlbeans-2.6.0.jar -C(解压缩文件夹路径)。” 不要忘记命令末尾的句号。 然后我将新的xmlbeans-2.6.0.jar复制到我的lib目录中,现在一切都很顺利。 希望这有助于其他人! 🙂

如果您正在使用maven,则可以尝试解压缩xmlbeans依赖项。

   unpack-dependencies package  unpack     org.apache.xmlbeans xmlbeans 2.6.0 jar true ${project.build.directory}/classes **/*test.class