java.lang.IncompatibleClassChangeError: Реализация класса при чтении файла формы - PullRequest
0 голосов
/ 22 февраля 2019
import org.opengis.feature.*;
import org.geotools.feature.*;
import org.geotools.data.*;
import java.io.*;
import java.util.*;
public class GeoOpen
{

public static void main(String[] args) {
File file = new File("states.shp");

try {
  Map<String, String> connect = new HashMap();
  connect.put("url", file.toURI().toString());

  DataStore dataStore = DataStoreFinder.getDataStore(connect);
  String[] typeNames = dataStore.getTypeNames();
  String typeName = typeNames[0];

  System.out.println("Reading content " + typeName);

  FeatureSource featureSource = dataStore.getFeatureSource(typeName);
  FeatureCollection collection = featureSource.getFeatures();
  FeatureIterator iterator = collection.features();


  try {
    while (iterator.hasNext()) {
      Feature feature = iterator.next();
      GeometryAttribute sourceGeometry = feature.getDefaultGeometryProperty();
    }
  } finally {
    iterator.close();
  }

} catch (Throwable e) {
    e.printStackTrace();}}
}

Я пытался прочитать файл формы в этом коде.Но при выполнении вышеуказанного файла получаю java.lang.IncompatibleClassChangeError.Я видел сообщения, получающие подобные ошибки, которые были решены с помощью последних фляг.Даже при использовании последних jar-ов я получаю эту ошибку.

java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.geotools.data.shapefile.ShpFiles.exists(ShpFiles.java:981)
    at org.geotools.data.shapefile.ShpFiles.init(ShpFiles.java:172)
    at org.geotools.data.shapefile.ShpFiles.<init>(ShpFiles.java:129)
    at org.geotools.data.shapefile.ShapefileDataStoreFactory.createDataStore(ShapefileDataStoreFactory.java:195)
    at org.geotools.data.shapefile.ShapefileDataStoreFactory.createDataStore(ShapefileDataStoreFactory.java:63)
    at org.geotools.data.DataAccessFinder.getDataStore(DataAccessFinder.java:129)
    at org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:87)
    at GeoOpen.main(GeoOpen.java:16)

Заранее спасибо.

...