If you use maven it walks the dependency tree and finds all the jars it
needs.

Ian

On Tue, 27 Feb 2024, 14:10 Amirhossein Nikfal, <ah.nik...@gmail.com> wrote:

> Yes, the problem was due to the missing of apache.commons.lang3. Thank you
> very much.
>
> But how could I know about this dependency before the compilation? Neither
> in the pom file, nor in the contents of the jar file
> (gt-swing-31-SNAPSHOT.jar), there was no name regarding
> apache.commons.lang3. Also "*mvn dependency:tree
> -Dincludes=org.geotools:gt-swing:**" could not be helpful.
>
> Best,
> Amir
>
> On Fri, Feb 23, 2024 at 4:37 PM Ian Turton <ijtur...@gmail.com> wrote:
>
>> it looks like you haven't added (at least) the apache.commons.lang3 jar.
>> This is what maven excels at so you should probably let it do it's magic
>> rather than trying to muddle along with out it.
>>
>> Ian
>>
>> On Fri, 23 Feb 2024 at 14:49, Amirhossein Nikfal <ah.nik...@gmail.com>
>> wrote:
>>
>>> The short code below can be compiled and run successfully, but *after
>>> loading the shapefile*, shows error in line: FileDataStore store =
>>> FileDataStoreFinder.getDataStore(file);
>>>
>>> This is the way I compile and run it:
>>> java -d . Quickstart.java
>>> java org.geotools.tutorial.quickstart.Quickstart
>>>
>>> Code:
>>> package org.geotools.tutorial.quickstart;
>>>
>>> import java.io.File;
>>> import org.geotools.api.data.FileDataStore;
>>> import org.geotools.api.data.FileDataStoreFinder;
>>> import org.geotools.swing.data.JFileDataStoreChooser;
>>>
>>> public class Quickstart {
>>> public static void main(String[] args) throws Exception {
>>> File file = JFileDataStoreChooser.showOpenFile("shp", null);
>>> if (file == null) {
>>> return;
>>> }
>>> FileDataStore store = FileDataStoreFinder.getDataStore(file);
>>> }
>>> }
>>>
>>> The errors:
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *Feb 23, 2024 3:31:29 PM org.geotools.api.data.FileDataStoreFinder
>>> getDataStoreWARNING: Could not aquire ESRI(tm) Shapefiles
>>> (*.shp):java.lang.NoClassDefFoundError:
>>> org/apache/commons/lang3/SystemUtilsjava.lang.NoClassDefFoundError:
>>> org/apache/commons/lang3/SystemUtils        at
>>> org.geotools.data.shapefile.files.ShpFiles.init(ShpFiles.java:189)
>>> at org.geotools.data.shapefile.files.ShpFiles.<init>(ShpFiles.java:147)
>>>     at
>>> org.geotools.data.shapefile.ShapefileDataStoreFactory.createDataStore(ShapefileDataStoreFactory.java:260)
>>>       at
>>> org.geotools.data.shapefile.ShapefileDataStoreFactory.createDataStore(ShapefileDataStoreFactory.java:417)
>>>       at
>>> org.geotools.api.data.FileDataStoreFinder.getDataStore(FileDataStoreFinder.java:78)
>>>       at
>>> org.geotools.api.data.FileDataStoreFinder.getDataStore(FileDataStoreFinder.java:55)
>>>       at Quickstart.main(Quickstart.java:31)Caused by:
>>> java.lang.ClassNotFoundException: org.apache.commons.lang3.SystemUtils
>>>   at
>>> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
>>>       at
>>> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>>>       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
>>>     ... 7 more*
>>>
>>> However, it can load the shapefile without problem when it's run by
>>> maven:
>>> mvn exec:java
>>> -Dexec.mainClass=org.geotools.tutorial.quickstart.Quickstart
>>>
>>>
>>> Any comment would be appreciated.
>>> _______________________________________________
>>> GeoTools-Devel mailing list
>>> GeoTools-Devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>>
>>
>>
>> --
>> Ian Turton
>>
>
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to