2012-05-23 14 views
22

Tengo una aplicación Java .jar que quiero distribuir a mis clientes que están en Mac o Windows. Quiero utilizar una herramienta que me quita el archivo jar y lo envuelve en un .dmg y un envoltorio .exe para Mac y Windows, respectivamente, que hace esto cuando se ejecuta:¿Cómo agrupar la aplicación Java para Mac/Windows?

  1. Comprueba si está instalado JRE; si no, instala JRE6 de Oracle. De lo contrario, actualiza JRE instalado a la última versión 1.6.x.
  2. Crea un enlace de acceso directo en el menú Inicio (en Windows) o en la carpeta Aplicaciones (en MacOSX) en mi aplicación envuelta y permite que mi aplicación se ejecute utilizando el JRE anterior
  3. Admite una sencilla "aplicación de desinstalación" para Windows. Para Mac, simplemente arrastre el .app a la Papelera para eliminar.

características opcionales:

  1. El apoyo a la plataforma iconos de aplicaciones independientes
  2. Soporte para actualizaciones automáticas a la jarra
  3. Soporte para argumentos de la JRE cuando se ejecuta mi .jar
  4. soporte para Linux (.deb o .rpm)
+1

Creo que Package Maker y Advanced Installer pueden hacer todo lo que está pidiendo. No creo que encuentres una herramienta que funcione tanto para Windows como para Mac. Probablemente necesites algo diferente para la gestión de paquetes. Si nos informa cuáles de sus requisitos no han sido cumplidos por Package Maker, Advanced Installer o lo que haya intentado, probablemente podamos ayudarlo. – jahroy

+0

Tenga en cuenta que jre 1.6 solo está disponible como descarga y actualización de software de Apple. 1.7 está disponible desde Oracle. – Mark

+0

No sé cuál es su presupuesto, pero eche un vistazo a: [InstallAnywhere de Flexera Software] (http://www.flexerasoftware.com/products/installanywhere.htm) – msiyer

Respuesta

8

Echa un vistazo Package Maker para Mac y Advanced Installer para Windows.

Los he usado para casi todos los requisitos que ha enumerado.

No las he usado para actualizaciones automáticas, pero probablemente tenga que compilar esa lógica en su aplicación.

No espere que hagan TODO el trabajo por usted, sin embargo.

Espere pasar bastante tiempo construyendo un instalador para cada plataforma.

Estoy seguro de que hay muchas opciones para Windows y Linux. Advanced Installer es el único que he usado.

Creo que Package Maker es el estándar para Mac. Es bastante increíble y fácil de usar.

¡Buena suerte!

0

Para implementar en Windows, me gusta usar Launch4j para envolver mi jar de aplicación y crear un ejecutable nativo de Windows que pueda detectar y usar un JRE ya instalado, o le permite agrupar el suyo. Es rápido, ligero y fácil de programar con Ant (o Maven) como parte de su proceso de compilación.

Combinado con esto, normalmente utilizo NSIS para crear un instalador que ponga accesos directos, y permite la instalación/desinstalación/reparación desde el Panel de control. Con un poco de trabajo, esto también puede ser escrito a través de Ant, y también puede ser creado desde una plataforma Linux.

Evidentemente, estas soluciones no funcionarán para la implementación de Mac, pero sospecho que tendrá que utilizar diferentes herramientas para las diferentes plataformas si desea la mejor experiencia para los usuarios finales.

1

He investigado esto por un tiempo para poder instalar la aplicación en Linux y Windows. Las mejores alternativas que encontré fueron -

Puede encontrar información cómo usarlo nativa en este blogpost. Pero instalarlo en Linux me llevó a usar un script .sh. En cuanto a mac mi conocimiento es limitado. Espero que esto ayude.

1

Tenga en cuenta que si desarrolla su aplicación como una aplicación de la plataforma netbeans, entonces netbeans producirá instaladores multiplataforma para usted (incluso para mac).

El hecho de que su aplicación netbeans tenga poco impacto en el aspecto y la sensación de la aplicación, puede hacer que se comporte de forma similar a cualquier aplicación de swing independiente.

Esto tiene las siguientes ventajas, que creo que hace que sea una opción atractiva: - multiplataforma - es gratis - no requiere un JDK para ser instalado antes de ejecutar el instalador - integra un proceso de actualización de software

1

Ya hay algunas buenas respuestas, pero creo que es necesario mencionar JavaWebStart. Por supuesto, solo es adecuado para entornos web, pero después de la instalación, su aplicación también se puede ejecutar sin conexión.

Las funciones (actualización automática, verificación de la versión de JVM, icono de escritorio) están disponibles.

Cosas a considerar:

  • Su aplicación debe ser quemado a tener derechos de acceso como una aplicación "normal".
  • afaik No puede enviar su aplicación de ninguna otra manera que no sea por descarga web.
Cuestiones relacionadas