VividSolutions shapefilereader在Windows和Linux中的作用不同

时间:2016-10-03 17:25:39

标签: java shapefile geotools

Vivisolutions的Shapefilereader在Windows中完美运行,但在多个ubuntu实例中我收到此错误:

  

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:438       at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:906)       at java.lang.StringBuffer.substring(StringBuffer.java:482)       在org.geotools.dbffile.DbfFile.ParseRecordColumn(DbfFile.java:247)       在com.vividsolutions.jump.io.ShapefileReader.read(ShapefileReader.java:175)

读取shapefile的代码是:

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 -version给出了

  

java版" 1.8.0_60" Java(TM)SE运行时环境(构建   1.8.0_60-b27)Java HotSpot(TM)64位服务器VM(内置25.60-b23,混合模式)

在windows中,java -version提供

  

java版" 1.8.0_60" Java(TM)SE运行时环境(构建   1.8.0_60-b27)Java HotSpot(TM)64位服务器VM(内置25.60-b23,混合模式)

他们有什么理由表现不同吗?阅读错误,geotools dbffile解析器遇到了问题。我已经做了很多搜索和测试,DBF文件看起来很好,可以在多个程序中读取,包括在Windows下运行时的这个程序。

0 个答案:

没有答案