VividSolutions shapefilereader работает по-разному в Windows и Linux

#java #shapefile #geotools

#java #шейп-файл #геоинструменты

Вопрос:

Shapefilereader из Vivisolutions отлично работает в Windows, но в нескольких экземплярах ubuntu я получаю эту ошибку:

java.lang.Исключение StringIndexOutOfBoundsException: строковый индекс вне диапазона: 438 в java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:906) в java.lang.StringBuffer.substring(StringBuffer.java:482) в файле org.geotools.dbffile.DbfFile.ParseRecordColumn(DbfFile.java:247) в com.vividsolutions.jump.io.ShapefileReader.read(ShapefileReader.java:175)

Код для чтения шейп-файла:

 public static FeatureCollection readShapefile(String shpFile)
{
    File file = new File(shpFile);
    if (!file.exists())
        Application.logError("File does not exist "   file.getName());

    ShapefileReader reader = new ShapefileReader();
    FeatureCollection collection = null;
    try {
        collection = reader.read(new DriverProperties(shpFile));
    } catch (IllegalParametersException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    return collection;
}
  

Я убедился, что на компьютере с Windows и на компьютере с Ubuntu установлена одна и та же версия java.

В ubuntu java-версия дает

java версии «1.8.0_60» Java (TM) SE Среда выполнения (сборка 1.8.0_60-b27) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 25.60-b23, смешанный режим)

В Windows java-версия дает

java версии «1.8.0_60» Java (TM) SE Среда выполнения (сборка 1.8.0_60-b27) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 25.60-b23, смешанный режим)

Есть ли какая-либо причина, по которой они будут вести себя по-другому? При чтении ошибки анализатор файлов geotools dbffile сталкивается с проблемой. Я провел много поисков и тестов, файл DBF, похоже, в порядке и может быть прочитан в нескольких программах, включая эту, при запуске под Windows.

Комментарии:

1. можете ли вы поделиться шейп-файлом?

2. что произойдет, если вы используете хранилище шейп-файлов GeoTools напрямую?