Más

Agregue una capa ráster o un WMS usando geotools: problema para ejecutar el archivo jar desde cmd


Estoy usando geotools para desarrollar un SIG personalizado.

Intenté agregar una capa ráster y un WMS basado en los tutoriales dados por geotools. Cuando ejecuto el proyecto usando la clase principal en Netbeans o Eclipse, todo funciona correctamente. Sin embargo, cuando intenté ejecutar el archivo jar desde el cmd, las funcionalidades anteriores fallan. A continuación puede ver una captura de pantalla que muestra el error con respecto al WMS.

Olvidé enviar que el proyecto en el que estoy trabajando es un proyecto de Maven.

¿Puedes ayudarme a entender dónde está el problema?

  junit junit 4.11 prueba  org.geotools gt-main 13.5  org.geotools gt-shapefile 13.5  org.geotools gt-swing 13.5  org.geotools.xsd gt-xsd-core 9.3  org.geotools.xsd gt-xsd-kml 9.3  org.geotools.jdbc gt-jdbc-postgis 13.5  org.geotools geometría gt $ {geotools.version}  org.postgresql postgresql 9.3-1103-jdbc41  org.geotools gt-epsg-hsql $ {geotools.version}  org.geotools gt-geotiff $ {geotools.version}  org.geotools gt-image $ {geotools.version}  org.geotools gt-wms $ {geotools.version}

El problema al que se enfrenta se responde en las Preguntas frecuentes de GeoTools: básicamente, debe combinar todos los archivos jar de dependencia necesarios en su archivo ejecutable para que los usuarios no tengan que preocuparse por la ruta de clases. Normalmente, esto es bastante fácil de lograr usando el complemento de ensamblaje en maven, sin embargo, cuando se usan los almacenes de datos de GeoTools (y otras fábricas), esto fallará como solo el último encontradoSPIpresentar enMETA-INF / serviciosserá guardado.

Por lo tanto, debe usar el complemento de sombra de maven para combinar los archivos de servicios en un solo archivo más grande que funcionará en el contenedor combinado.

Debe agregar un bloque como el siguiente a su archivo pom de maven:

 org.apache.maven.plugins complemento de sombra de maven 2.4.3   paquete  sombra       org.geotools.demo.Quickstart  

Deberá cambiar el nombre de la clase principal para que coincida con su programa, por supuesto, y luego ejecutarpaquete mvn: sombrapara crear el nuevo frasco.


Ver el vídeo: Ejecutar Jar desde consola (Septiembre 2021).