将Apache POI 3.14迁移到3.17和JDK9:

时间:2018-02-06 09:53:23

标签: java eclipse apache-poi java-9

我很难将我的一些项目从apache poi 3.14迁移到最新的3.17,我无法在apache网站上找到更多信息。

在我的情况下,似乎删除了一些类/包:

import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFFont;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

所有结果都是" ...无法解决"自从将图书馆从3.14切换到3.17(在类路径中有所有3个罐子poi,poi-ooxml和poi-ooxml-schemas)。

所以我想我必须重写/重写我代码的大部分内容,但我无法在当前的lib中找到关于使用哪些类或函数的任何提示。

编辑: 错误的其他屏幕截图(即使在项目清理+重建之后):

Error 1

Error 2

EDIT2: 进一步的测试表明,只要项目使用JDK9而不是JDK7,就无法再导入/访问命名类。无论我使用哪个版本的库(3.14或3.17)。 所以这必须与JDK9相关。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

最后把它钉了下来:

这些问题不是(直接)由lib和/或jdk9本身引起的,而是由Eclipse引起的(v4.7.2)。

我的项目中有2个类,使用apache poi库来读取或写入Excel文件。 一个类是我从中截取问题的截图。 第二类在eclipse中有0个错误(很有趣,因为它导入相同的poi类......)。

但事实是,第二堂课也有2个错误! 这些错误是由于更改从v3.14到3.17引起的,因为API发生了变化,但它们在Eclipse中有些混淆/不可见。

在我修复了第二类中的这两个错误后,所有导入错误(“......无法解析”和“......无法访问”)在主类中消失,代码变得可编译并再次运行(甚至用JDK9)。

我只是通过在命令行上修改试图用手编译东西来发现真正的原因......所以是的。我希望这可以帮助其他人解决相似的问题:)。