2010-03-19 14 views
6

Me gustaría saber qué paquetes hay disponibles que se pueden usar para crear instaladores para distribuir aplicaciones.Instalador para la aplicación Java

La aplicación de destino está escrita en Java. El instalador debe ser capaz de:

  • compilarse a través de un script Ant
  • compilarse Linux (y Windows)
  • funcionar en Windows y Linux
  • detectar/manejar versiones anteriores instaladas de la aplicación

Actualmente usamos IzPack, porque hace todo lo anterior, excepto este último: no puede detectar fácilmente v previamente instalado ersion del software, y este es el factor decisivo para nosotros.

¿Hay algún otro paquete que encaje con la factura?

¡Gracias!

+0

Hay por lo menos tres duplicados en la barra lateral "relacionada". –

+3

@Paul Tomblin: Excepto que ninguno de ellos aborda el meollo de mi pregunta, que es 'detectar/manejar las versiones previamente instaladas de la aplicación'. Editado para hacer ese énfasis. – bguiz

+1

De hecho, el autor dejó muy claro, incluso en la versión original, el quid del problema. A simple vista, cualquier cosa puede parecer un engaño, pero es importante comprender el tema central de la pregunta. –

Respuesta

5

Creo que puede estar perdiendo el CheckedHelloPanel de izPack que (de acuerdo con los documentos en línea) comprueba en el registro si ya se ha instalado otra versión, y le pregunta si desea instalar una segunda versión.

OTOH ... si quiere decir que el instalador debe ser capaz de realizar una actualización in situ de una versión anterior, es un problema realmente difícil, y todavía tengo que encontrarme con un instalador que intente incluso abordarlo.

EDIT En plataformas que no son de Windows, existe un problema fundamental. Si una aplicación se puede instalar en un lugar no estándar, es imposible saber con 100% de confianza si se ha instalado previamente una copia (de la misma o una versión diferente). Y esto puede estar en la raíz de por qué CheckedHelloPanel solo es compatible con la detección de versiones antiguas en Windows.

Dicho esto, izPack es de código abierto, por lo que si puede encontrar una metodología para detectar una versión anterior en Linux, puede modificar CheckedHelloPanel para implementarla. Y tal vez el izPack aceptará un parche. De todos modos, te recomiendo que veas ese enfoque primero antes de abandonar una herramienta con la que estés satisfecho. (Especialmente si lo que quiere hacer simplemente no se puede hacer en Linux.)

+0

@Stephen C, he considerado que, sin embargo, la función solo está disponible en Windows, y mi instalador debe funcionar en Windows. 'Additonal en Windows se escaneará el registro en busca de una entrada que determine que el producto ya está instalado' (http://izpack.org/documentation/panels.html#id4) – bguiz

+0

@Stephen C, además no lo necesito ser capaz de hacer una actualización en el lugar. Supongamos que la primera versión aún no se ha instalado, pero las versiones posteriores deberían detectar las versiones anteriores instaladas. – bguiz

+0

+1 y marque @Stephen C: he seguido su sugerencia, excepto que la extensión 'CheckedHelloPanel' no funcionó bien (al menos para mi aplicación de destino). H/w He extendido 'IzPanel' para lograr un efecto similar, ¡así que gracias por la sugerencia! – bguiz

0

InstallAnywhere puede hacer todo eso, e ISMP (InstallShield Muli-Platform) hizo todo eso cuando Flexera todavía lo vendía, pero son software comercial . No sé de un equivalente gratuito que haga todas esas cosas.

+1

Usamos InstallAnywhere en el trabajo, y * * no * lo recomendaría. – leedm777

+1

Lo usamos también en el trabajo ... mis compañeros de trabajo están tratando de convencer a la gerencia para que se pasen a otra herramienta, es una pesadilla y muy improductiva en términos de tiempo necesario para construirla y probarla. Creo que la próxima versión va a ir con InstallShield – Persimmonium

+0

Las compañías que fabricaron InstallAnywhere e InstallShield Multi-Platform fueron compradas por una tercera compañía, y sus líneas de productos se fusionaron. La conclusión es que ISMP ya no está en el mercado. Todavía venden productos "InstallShield" para instalaciones nativas de Windows, pero no para plataformas múltiples. –

1

Prueba InstallJammer. Es gratis, de código abierto y debe hacer exactamente lo que quieras. Específicamente, no solo detectará una instalación previa, sino que también tiene algunas capacidades sofisticadas para detectar múltiples versiones anteriores y recopilar la información necesaria de ellas.

Descárguelo y pruébelo, y si tiene alguna pregunta, pase por los foros y pregunte. Por lo general, respondo a todos muy rápidamente y completamente.0-]

+0

@Damon, he revisado la documentación, y bajo 'Verificar la instalación anterior' y' Agregar instalación info', hace referencia a 'registry' y' install registry'. Estoy preocupado de que esto equivalga a (parte de) el registro de Windows. Si no, ¿dónde está ubicado realmente este registro? – bguiz

+0

InstallJammer mantiene su propio "registro" de instalaciones en el sistema de destino. Estos se almacenan en el disco y no en el registro de Windows, incluso en un sistema de Windows. Cada instalación almacena cierta información básica en el registro IJ, y eso es lo que se usa para verificar las instalaciones previas. También puede almacenar su propia información con cada instalación, si lo desea, ya que el instalador solo almacena lo que necesita. Sin embargo, es un sistema muy flexible, por lo que creo que encontrará que puede obtener la información que desee de él. – Damon

Cuestiones relacionadas