[Gvsig_desarrolladores] Duda con Launcher de gvSIG

Cèsar Ordiñana cordinyana en gvsig.com
Mar Nov 8 14:27:21 CET 2011


El 08/11/11 15:43, Raisel Castellanos Santiago escribió:
> Hola César
>
> Me refiero al ejecutable que te permite arrancar gvSIG una vez instalado.
> Por mi parte me parece bien en la forma que está, o sea, un instalable para
> cada Sistema operativo, ya que por ejemplo, en el caso de Windows he visto
> que son necesarias algunas DLL.
> Lo que me preocupa es el tribunal de mi tesis, pues mis profesores me han
> advertido que me pueden criticar eso de tener un ejecutable para cada
> plataforma,  y me preguntan por qué si el proyecto está desarrollado en Java
> no se tiene un ejecutable .Jar. Yo les he dicho que gvSIG se trata de un
> proyecto muy grande, pero bueno, me gustaría tener bien claro el por qué no
> se hizo un ejecutable .jar de gvSIG, para así tener una base mediante la
> cual defenderme en caso que se diera esa situación.
> Espero que me hayan entendido, y una vez más cuento con su ayuda.
>
> Gracias por responder
>
> Saludos, Raisel Castellanos

Hola Raisel,

Vale, está claro entonces, hablamos de los launchers para arrancar gvSIG.

Por simplificar, te comento lo de los launchers como si gvSIG no usara 
librerías nativas, y lo vemos después:

Los launchers de gvSIG no son la aplicación en sí, sino sólo una 
utilidad para poner en marcha gvSIG. Su función es definir algunas 
variables de entorno, construir el classpath a partir de los jars del 
directorio lib de la instalación de gvSIG, buscar e invocar a la máquina 
virtual java. En realidad no son estrictamente necesarios, pero 
facilitan mucho de cara a su instalación y que sea sencillo arrancar gvSIG.

Lo puedes ver más claro en el caso del launcher para linux, que es un 
shell script, y podrás ver cómo realiza la invocación a la propia JVM. 
En windows, por no tener un .bat, eso mismo lo hace un ejecutable .exe, 
pero su función es la misma.

¿Por qué no hacer un jar ejecutable como comentas? Existen varias razones:

- gvSIG se distribuye como un conjunto de archivos .jar y recursos, que 
no van dentro de un jar único. Ten en cuenta además que el usuario 
incluso puede elegir qué plugins instalar o no, y cada plugin tiene sus 
propios archivos.

- gvSIG requiere una serie de parámetros en el momento de arrancar.

Todo esto se puede llegar a solventar, y de hecho en gvSIG 2.0 se puede 
hacer ya. Si te instalas uno de los últimos builds disponibles, puedes 
acceder al directorio lib de la instalación de gvSIG y arrancarlo con lo 
siguiente:

   java -jar org.gvsig.andami-2.0-SNAPSHOT.jar

O directamente haciendo doble click sobre el jar anterior. Si alguien 
tiene curiosidad puedo explicar lo que hemos hecho para que lo anterior 
funcione, aunque ya hemos hecho algún post al respecto en el blog de gvSIG.

Ahora retomemos el tema de las librerías nativas, que es el problema 
principal de cara al launcher. Si ejecutas gvSIG 2.0 como he dicho 
antes, en vez de usar el launcher, no te funcionará nada que se apoye en 
librerías nativas, como por ejemplo CRS y raster. Eso es debido a que 
las librerías nativas se cargan dinámicamente, no están linkadas 
estáticamente en el launcher de gvSIG.

Y para cargar librerías nativas dinámicamente, en cada sistema operativo 
existe un mecanismo distinto, pero lo habitual es definir una variable 
de entorno que apunte a su ubicación, y esa es una de las funciones que 
realizan los launchers. Además el usar librerías nativas obliga a tener 
instaladores específicos para cada plataforma.

A partir de gvSIG 2.0 el usuario podrá realizar una instalación si lo 
desea 100% java, eso si renunciando a algunas funcionalidades que se 
basan en el uso de librerías nativas.

Saludos,

-- 
Cèsar Ordiñana Navarro
gvSIG software architect
DiSiD Technologies (http://www.disid.com)


> -----Original Message-----
> From: gvsig_desarrolladores-bounces en listserv.gva.es
> [mailto:gvsig_desarrolladores-bounces en listserv.gva.es] On Behalf Of Cèsar
> Ordiñana
> Sent: martes, 08 de noviembre de 2011 3:58
> To: gvsig_desarrolladores en listserv.gva.es
> Subject: Re: [Gvsig_desarrolladores] Duda con Launcher de gvSIG
>
> El 07/11/11 12:45, raysel escribió:
>> Hola amigos desarrolladores
>>
>>
>> Les comento que actualmente me encuentro en el último año de la
>> carrera de Ingeniería Informática, y mi proyecto final de Tesis
>> consiste en un SIG que estoy desarrollando sobre gvSIG, por sus
>> facilidades de desarrollo, por sus potentes herramientas que todos
>> conocemos y además por tratarse de un sistema multiplataforma.
>>
>> Sobre este último aspecto me ha surgido una duda sobre cómo funciona
>> el launcher de gvSIG, ya que para Windows es un .EXE, para Linux un
>> .BIN, etc..., y me pregunto,
>>
>> - ¿Por qué no se creó un ejecutable .JAR?
>> - ¿Es posible hacerlo?
> Hola Raisel,
>
> ¿A qué te refieres exactamente con el término "launcher"?
>
> En el proyecto lo usamos para referirnos al ejecutable que te permite
> arrancar gvSIG una vez instalado, que en windows es un ejecutable .exe y en
> linux un script con extensión .sh.
>
> Pero por tu comentario sobre la extensión .bin, no se si te refieres
> realmente al instalador de gvSIG, que es un .exe en windows y un .bin en
> linux.
>
> Saludos,
>
> --
> Cèsar Ordiñana Navarro
> gvSIG software architect
> DiSiD Technologies (http://www.disid.com)


Más información sobre la lista de distribución gvSIG_desarrolladores