0

您好在构建 xml 中遇到错误。从日志中我认为错误与 apache poi 库“poi-ooxml-3.9-20121203”和 Java 版本有关。我目前正在使用 JDK 4 和 apache poi 3.9。

Buildfile: C:\POITest\build.xml
    init:
    clean:
       [delete] Deleting directory C:\POITest\build
       [delete] Deleting directory C:\POITest\dist
    init:
        [mkdir] Created dir: C:\POITest\dist
        [mkdir] Created dir: C:\POITest\build
        [mkdir] Created dir: C:\POITest\dist\lib
    compile:
        [javac] C:\POITest\build.xml:38: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
        [javac] Compiling 1 source file to C:\POITest\build
        [javac] C:\POITest\src\poi\test\TestMain.java:8: cannot access org.apache.poi.openxml4j.exceptions.InvalidFormatException
        [javac] bad class file: C:\POITest\lib\poi3-9\poi-ooxml-3.9-20121203.jar(org/apache/poi/openxml4j/exceptions/InvalidFormatException.class)
        [javac] class file has wrong version 49.0, should be 48.0
        [javac] Please remove or make sure it appears in the correct subdirectory of the classpath.
        [javac] import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
        [javac]                                            ^
        [javac] 1 error

POI 罐子列表

/POITest/lib/poi3-9/commons-codec-1.5.jar
/POITest/lib/poi3-9/commons-logging-1.1.jar
/POITest/lib/poi3-9/dom4j-1.6.1.jar
/POITest/lib/poi3-9/junit-3.8.1.jar
/POITest/lib/poi3-9/log4j-1.2.13.jar
/POITest/lib/poi3-9/poi-3.9-20121203.jar
/POITest/lib/poi3-9/poi-examples-3.9-20121203.jar
/POITest/lib/poi3-9/poi-excelant-3.9-20121203.jar
/POITest/lib/poi3-9/poi-ooxml-3.9-20121203.jar
/POITest/lib/poi3-9/poi-ooxml-schemas-3.9-20121203.jar
/POITest/lib/poi3-9/poi-scratchpad-3.9-20121203.jar
/POITest/lib/poi3-9/stax-api-1.0.1.jar
/POITest/lib/poi3-9/xmlbeans-2.3.0.jar

如果您需要查看构建文件,请告诉我。谁能告诉我我需要做什么来解决这个问题。谢谢

4

1 回答 1

4

49.0 和 48.0 是类文件格式的版本号。该错误信息表示 POI-3.9 被编译为 JDK 5 类文件格式,您尝试将其与 JDK 4 一起使用。当然,JDK 4 不支持 JDK 5 类文件格式。我认为您可以尝试旧版本的 POI。或者只使用 JDK 5。

1、从POI 3.5开始,需要JDK 1.5。所以你可以使用 POI 3.4。请参考这篇文章:Apache POI JDK 版本

2、有人已经将POI 3.8迁移到JDK 1.4。检查Apache POI (3.8 final) migrated to JDK 1.4。谨慎使用非官方二进制文件。它可能无法完全测试。

正在使用的类文件格式的主要版本号:

  • J2SE 7 = 51(0x33 十六进制)
  • J2SE 6.0 = 50(0x32 十六进制)
  • J2SE 5.0 = 49(0x31 十六进制)
  • JDK 1.4 = 48(0x30 十六进制)
  • JDK 1.3 = 47(0x2F 十六进制)
  • JDK 1.2 = 46(0x2E 十六进制)
  • JDK 1.1 = 45(0x2D 十六进制)

参考资料:Java类文件

于 2013-03-12T03:39:38.897 回答