问题描述:开发环境测试启动都没有问题,但是模拟生产的测试环境上一直报包不存在
解决过程:根据开发环境找到对应的jar包javafx.util.Pair。根据idea提示该包来着Oraclejdk,本项目使用的是openjdk,所以该包不适用。根据百度资料:
- OpenJDK采用GPL V2协议,允许在商业中使用。
- Sun JDK(Oracle JDK)则采用JRL协议,仅允许个人研究使用。
- OpenJDK的源代码不完整,而Sun JDK(Oracle JDK)的源代码相对完整。
- OpenJDK因其开放的授权协议,更适合于商业使用。
解决方法:修改涉及这个包的所有方法,只有一个使用Stream进行多字段分组的方法中使用。进项代码修改。
// excelList 根据unitName 和 accountDate 分组
Map<Pair<String, String>, List<VatAgentExcelDTO>> collects = excelList.stream().collect(Collectors.groupingBy(dto -> new Pair<>(dto.getUnitName(), dto.getAccountDate()
)));
修改后
Map<String, Map<String, List<VatAgentExcelDTO>>> collects = excelList.stream()
.collect(Collectors.groupingBy(
VatAgentExcelDTO::getUnitName,
Collectors.groupingBy(VatAgentExcelDTO::getAccountDate)
));