在 AnyLogic 中读取 Excel 文件 java.lang.NoSuchMethodError: 'byte[] org.apache.commons.io.IOUtils.byteArray[int]' 时出错

问题描述 投票:0回答:1

我正在 AnyLogic 中开发仿真模型,需要从外部 Excel 工作表读取数据。我在Win11操作系统上创建了该项目,并使用Connectivity的Excel文件模块并成功实现了读取功能。

但是当我复制这个项目到带有 Apple M2 芯片的 Macbook Pro 上运行时,项目报错:“读取 excel 文件时出错 java.lang.NoSuchMethodError: 'byte[] org.apache.commons.io.IOUtils.byteArray [int]'”。

我在事件操作代码中使用了anylogic提供的

excelFile.getLastRowNum
excelFile.getCellNumericValue
excelFile.getCellStringValue
函数。代码如下:

int time = (int)time() - 15;
String airportName = checkAptName(this);
for (int rowIndex = 2; rowIndex < excelFile.getLastRowNum(airportName); rowIndex++) { // Start with 2, 1 is the head
    int tstValue = (int) excelFile.getCellNumericValue(airportName, rowIndex, 1);
    if (tstValue == time) {
        String destinationValue = excelFile.getCellStringValue(airportName, rowIndex, 2);
        destinationApts.add(main.airports.get(getApt(destinationValue)));
        departingPed.inject(1);
    }
}

我尝试安装最新的JDK,但没有解决问题。可以看到,AnyLogic只需要我完成某些位置的功能代码,所以Excel文件的底层读取我是无法访问的。

这看起来像是一个不兼容的 commons-io 库版本问题导致的?如何更新或降级 AnyLogic 中使用的 commons-io 库?或者这个问题是否需要使用其他解决方案?如果有任何意见,我将不胜感激。

java macos anylogic apache-commons-io apple-m2
1个回答
0
投票

我刚刚给 AnyLogic 发了电子邮件,得到了他们的回复,确认这是 AnyLogic 版本 8.9.1 中我们同时使用 GIS 地图和 Excel 文件模块时的错误。我们可以使用 AnyLogic 版本 8.9.0 来避免这个错误,或者等待他们即将推出的 AnyLogic 版本 8.9.2 来修复这个错误。

© www.soinside.com 2019 - 2024. All rights reserved.