0

这是一个后续问题我刚刚在Apache POI 网站上找到了这个标题。

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

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

设置

  • 阿帕奇 POI - 3.9
  • JDK - 1.4.2 (4.0)

欢迎任何建议、提示或技巧。提前致谢!

4

3 回答 3

2

Java 1.4 现在已经很老了——它是在 2002 年发布的,所以在 10 多年前。常规支持于 2008 年结束,所以我不敢想您需要向 Oracle 支付多少费用才能获得延长支持……如果可能的话,将部分现金转用于升级项目!

在 Java 1.4 上运行的最后一个Apache POI版本是 POI 3.2,于 2008 年 10 月发布。它的源代码和二进制包可从Apache dist 存档中获得。今天使用 POI 3.2 有两个主要障碍,第一个是它只支持二进制文件格式。它不支持 .xlsx、.pptx、.docx 等 OOXML 格式。对这些(通过 XSLF、XSSF 和 XWPF)的支持仅在 POI 3.5 中引入,并且至少需要升级到 Java 5。第二个问题是您将错过5 年的错误修复和新功能,其中有很多!

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

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

于 2013-03-12T11:53:07.257 回答
1

我想这是非常困难的。举个例子=> 假设POI 3.9使用Genericsvarargs的特性jdk 1.5,那么你怎么能用jdk 1.4. 我建议您将您的 POI 版本降级或升级您的jdk版本更高。

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

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.2-FINAL</version>
</dependency>
于 2013-03-12T05:08:58.077 回答
0

我使用Poi 3.8 迁移到 jdk 1.4。有用 :-)

于 2014-06-27T11:49:26.647 回答