使用apache poi 3.9和JDK 4的变通方法

时间:2013-03-12 04:57:42

标签: java apache-poi

这是一个跟进问题here。我刚刚在Apache POI website找到了这个标题。

  

POI 3.5及更高版本需要JDK 1.5或更高版本。 3.5之前的版本需要JDK 1.4 +

显然,这就是我无法构建Java程序的原因。我想知道是否有任何变通方法可以使用我当前的设置在Ant中成功构建我的项目。

设置

  • Apache POI - 3.9
  • JDK - 1.4.2(4.0)

欢迎任何建议,提示或黑客入侵。提前谢谢!

3 个答案:

答案 0 :(得分:2)

Java 1.4现在已经很老了 - 它在2002年发布,所以10多年前。定期支持在2008年结束,因此我不得不考虑您需要向Oracle支付多少费用以获得更多支持...如果可能的话,将部分现金转移到升级项目中!

在Java 1.4上运行的Apache POI的最新版本是2008年10月发布的POI 3.2。它的源代码和二进制包可从the Apache dist archive获得。今天使用POI 3.2有两个主要障碍,第一个是它只支持二进制文件格式。它不支持OOXML格式,例如.xlsx,.pptx,.docx。这些(通过XSLF,XSSF和XWPF)的支持仅在POI 3.5中引入,并且要求将Java 5作为最小值。第二个问题是你会错过5 years of bug fixes and new features,其中有很多!

自从有人在旧JDK上询问有关新版本的Apache POI以来已经有几年了(其他人已经设法升级到可以获得正常支持的东西!)。当人们提问时,一个常见的答案就是尝试Retroweaver,这可以让你在JDK 1.4上加载和运行JDK 5代码。我自己没有尝试过,但给出答案的人似乎很开心,所以我认为它会做到这一点......

(将POI 3.9转换为在JDK 1.4上运行对您来说将是很多工作。从3.2天开始,大多数新代码都使用了泛型,通过转向泛型,大量旧代码已经大大整理和简化,我认为有一些奇怪的varags,关于日期格式化器敲响了铃声,还有所有XML的东西。它可以完成,但不会很快)

答案 1 :(得分:1)

我想这很难。举一个例子=>假设POI 3.9正在使用Generics的{​​{1}}或varargs的{​​{1}}功能,那么您如何使用jdk 1.5进行编译。我建议您降低POI版本的降级或升级jdk 1.4版本。

编辑: 添加maven依赖项添加对POI 3.2的支持,如下面的代码

jdk

答案 2 :(得分:0)

我使用了Poi 3.8 migrated to jdk 1.4。它有效: - )