繁体   English   中英

使用apache poi 3.9的Java程序在XML构建文件中遇到错误

[英]Java program using apache poi 3.9 encountered error in XML build file

您好在构建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 JARS列表

/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

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

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 version

2,有人已经将POI 3.8迁移到JDK 1.4。 检查将Apache POI(最终版3.8)迁移到JDK 1.4 注意使用非官方二进制文件。 它可能无法完全测试。

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

  • J2SE 7 = 51(0x33十六进制)
  • J2SE 6.0 = 50(16x 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类文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM