在NetBeans中,我创建了一个Exporter类,它使用APACHE POI将一些数据导出到EXCEL文件,该文件使用XMLBeans。
我通过下载zip二进制文件并手动添加jar来添加APACHE POI 3.10.1库。
当我在同一个项目中使用这个类时,一切都正常运行。
然后我通过右键单击Libraries将这个类添加到另一个项目 - >添加项目。
但是当我尝试运行时,我在编译时遇到了以下错误。
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
我不知道这可能是什么,但让我发疯。
答案 0 :(得分:14)
在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目录中,现在一切正常。希望这有助于其他人! : - )
答案 1 :(得分:0)
如果您正在使用maven,可以尝试解压缩xmlbeans依赖项。
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<excludes>**/*test.class</excludes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>