Java 在没有Maven的情况下使用GeoTools

Java 在没有Maven的情况下使用GeoTools,java,eclipse,maven,geotools,Java,Eclipse,Maven,Geotools,我使用geotools库和maven构建工具编写了一些java代码。当我在maven项目中将其作为独立java应用程序运行时,这段小代码成功运行。但由于我需要在另一个没有maven的项目中使用这段代码,我将Maven项目中Maven Dependencies文件夹中的所有jar文件复制到我的另一个项目中,并将其作为外部jar/依赖项添加。但是,当我在eclipse中作为java应用程序运行新项目时,这段代码不会在新项目中运行。下面是这段代码和stacktrace: 38. public s

我使用geotools库和maven构建工具编写了一些java代码。当我在maven项目中将其作为独立java应用程序运行时,这段小代码成功运行。但由于我需要在另一个没有maven的项目中使用这段代码,我将Maven项目中Maven Dependencies文件夹中的所有jar文件复制到我的另一个项目中,并将其作为外部jar/依赖项添加。但是,当我在eclipse中作为java应用程序运行新项目时,这段代码不会在新项目中运行。下面是这段代码和stacktrace:

38.    public static void main(String[] args) throws Exception {
39.     File file = new File("path to shapefile");
40.     modifyShapeFile(file);
    ...........................................
    ............................
    }
52.   public static void modifyShapeFile(final File file) throws Exception {
53.     ShapefileDataStore store = (ShapefileDataStore) FileDataStoreFinder
                .getDataStore(file);
54.     SimpleFeatureSource featureSource = store.getFeatureSource();
55.     SimpleFeatureStore featureStore = (SimpleFeatureStore) featureSource;
56.     Transaction transaction = new DefaultTransaction("modify");
57.     featureStore.setTransaction(transaction);
58.     SimpleFeatureType featureType = store.getSchema();
59.     SimpleFeatureBuilder build = new SimpleFeatureBuilder(featureType);
        ........................................................
        .........................................................
堆栈跟踪:

Exception in thread "main" java.lang.NoSuchFieldError: METER
    at org.geotools.referencing.wkt.Parser.parseSpheroid(Parser.java:560)
    at org.geotools.referencing.wkt.Parser.parseDatum(Parser.java:656)
    at org.geotools.referencing.wkt.Parser.parseGeoGCS(Parser.java:867)
    at org.geotools.referencing.wkt.Parser.parseProjCS(Parser.java:913)
    at org.geotools.referencing.wkt.Parser.parseCoordinateReferenceSystem(Parser.java:225)
    at org.geotools.referencing.wkt.Parser.parseCoordinateReferenceSystem(Parser.java:204)
    at org.geotools.referencing.factory.ReferencingObjectFactory.createFromWKT(ReferencingObjectFactory.java:1090)
    at org.geotools.data.PrjFileReader.<init>(PrjFileReader.java:94)
    at org.geotools.data.PrjFileReader.<init>(PrjFileReader.java:68)
    at org.geotools.data.shapefile.ShapefileSetManager.openPrjReader(ShapefileSetManager.java:106)
    at org.geotools.data.shapefile.ShapefileFeatureSource.readAttributes(ShapefileFeatureSource.java:515)
    at org.geotools.data.shapefile.ShapefileFeatureSource.buildFeatureType(ShapefileFeatureSource.java:471)
    at org.geotools.data.shapefile.ShapefileFeatureStore.buildFeatureType(ShapefileFeatureStore.java:131)
    at org.geotools.data.store.ContentFeatureSource.getAbsoluteSchema(ContentFeatureSource.java:340)
    at org.geotools.data.store.ContentFeatureSource.getSchema(ContentFeatureSource.java:309)
    at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:339)
    at org.geotools.data.store.ContentDataStore.getSchema(ContentDataStore.java:712)
    at org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:197)
    at com.amazon.marketplacevolumeviewer.shapefile.ModifyShapeFile.modifyShapeFile(ModifyShapeFile.java:58)
    at com.amazon.marketplacevolumeviewer.shapefile.ModifyShapeFile.main(ModifyShapeFile.java:40)
maven项目的pom.xml文件符合本教程的要求:


这些jar文件没有附加源代码,因此我无法跟踪堆栈跟踪。

请在使用GeoTools时使用Maven-即使像我这样的资深开发人员也几乎不可能跟踪GeoTools需要的所有依赖项

至少在geotools构建中运行mvn dependency:list,以显示需要哪些文件,而不是盲目复制。您可能需要选择一个插件jar及其相关依赖项


查看您的错误表明您可能缺少net.java.dev.jsr-275.jar中的Units系统。

可能是版本冲突。在Maven项目中做一个mvn dependency:tree,可能有相同库的多个版本吗?你不能把你的另一个项目也做一个Maven项目吗?因为这是Maven的一个著名之处:不需要复制jar文件。它已经是一个ANT项目,我只需要使用ANT。