mar*_*yli 2 java eclipse excel apache-poi
我创建了一个使用 Java 的应用程序,它使用 Apache POI 处理 excel 文件。问题是,当我从 eclipse 运行代码时,它工作正常,但是当我为应用程序制作可执行 jar 时(使用 eclipse export executable jar 选项),jar 工作正常但结果不同,甚至大小生成的excel文件不同。
我做了很多研究,但没有找到方便的解决方案。
是的。几年前我也有过同样的经历。
在 Eclipse 中创建可运行的 .jar 时,您可以选择如何处理来自库(例如本例中的 Apache POI)的 .class 文件:
有趣的是,对于 Apache POI,三种不同的打包方式产生了巨大的差异:
我不记得哪个给了我预期的结果。所以你必须自己尝试一下。(从 Eclipse 启动 Java 项目的方式来看,它应该是 #3,子文件夹中的 libs,这会得到相同的结果)。但是:无论如何都要尝试其他的;正如我所说,未来的巨大差异。
TBH Apache POI 是不应该如何编写软件的“好”示例。它非常臃肿且占用大量内存,并且具有非常有趣/奇怪的行为。所以我为更新的 .xls 文件格式编写了自己的库,它的速度快了 100 倍,更小,更可靠。并且在字符串缓存和单元格格式操作优化方面做得更好。所以要好 1000000 倍 :-P
好处是 POI 开发团队知道他们项目的局限性和缺点,并提供多种处理文件的模式,以克服上述缺点。所以,毕竟,为他们点赞!