2010-02-11 19 views
11

Recientemente he lanzado una aplicación Java multiplataforma. Para la distribución creamos un instalador NSIS para Windows y usamos un DMG para Mac (que tiene el archivo JarBundled .app). También planeamos crear RPM de Linux, DEB y tarballs.Cómo liberar parches para programas Java

En total hay 5 métodos de distribución diferentes para atender.

Mi pregunta es: ¿Cuál es la mejor forma de multiplataforma para parchear un programa Java que se ejecuta en muchas plataformas?

Respuesta

4

¿Ha considerado simplemente lanzar nuevas versiones menores de toda la aplicación, en lugar de parches? Como ya habrá invertido tiempo en los instaladores para las distintas plataformas, parece que evitaría muchas molestias al tratar de encontrar un segundo método para cada plataforma. No puedo pensar en un inconveniente a menos que tu aplicación sea extremadamente grande, ya que el ancho de banda es bastante barato hoy en día.

+0

La razón principal por la que queremos evitar eso es que no queremos distribuir el instalador a todos, ya que lo único que nos protege de la piratería es un simple validador de clave de licencia. Un parche, por otro lado, se puede distribuir desde nuestro sitio web fácilmente, ya que es inútil sin el programa principal. – cdmckay

+0

Acepto, solo cree una nueva versión de los instaladores, para que el usuario no se ocupe de los diferentes métodos de instalación. –

+0

¿Cómo distribuyes tu aplicación original? –

4

Yo diría que una secuencia de comandos Ant es una forma razonablemente multiplataforma para realizar una tarea. Si su lógica de parche incluye mover algunos archivos, actualizar jarras, manejar la configuración, etc., Ant puede serle útil. Puede usar AntInstaller como GUI.

+0

Creo que has entendido mal. Estoy buscando una forma de enviar parches a los usuarios. Los usuarios que usen esta aplicación serán altamente no técnicos, por lo que lo más que podemos esperar de ellos es poder hacer doble clic en un archivo EXE o DMG. Editar: NM, parece que lo entiendes :) – cdmckay

+0

Ahora que lo pienso, lanzar un parche es como lanzar un paquete de instalación completo. En cuanto a un buen contenedor de instalación para usuarios finales, en mi proyecto toda la lógica de instalación/parche es un script Ant, y estamos usando AntInstaller más un script de inicio específico de plataforma (.bat/.sh) para arrancar AntInstaller. Esta podría no ser la mejor solución (.exe sería más agradable), pero - solo mis 2 centavos. –

+0

Agradecería un comentario sobre el voto a favor. –

4

Puede que esta no sea una opción para usted, pero creo que la mejor manera es usar Java Web Start.

Proporciona mecanismos independientes de plataforma para descargar automáticamente versiones parcheadas de su software.

+0

Estoy confundido por esta respuesta, ¿cómo ayudaría jws a aplicar un parche? ¿Podrías elaborar? – kgrad

+0

@ Peter Lang: Estoy trabajando para una compañía que vende software comercial. Lo último que desea, a menos que esté dispuesto a sacrificar una gran parte de sus clientes potenciales de OS X, es utilizar Java Web Start. Para empezar, Java todavía tiene una * muy * mala reputación entre los usuarios de OS X y es mejor ocultarlos el hecho de que es una aplicación de Java. Entonces, por supuesto, JWS es un gran problema. – SyntaxT3rr0r

+0

@WizardOfOdds, Java funciona bien aquí para nosotros en OS X. ¿Podría profundizar en su experiencia con Java en OS X ya que es tan malo? Una distribución puede contener siembra inicial para una aplicación JNLP, por lo que se puede evitar la gran descarga. –