2011-04-19 17 views
9

¿Cómo puedo hacer un programa Java instalable?¿Cómo hacer que el programa Java sea instalable?

Tengo una aplicación guardada en mi área de trabajo de Eclipse.

Puedo exportarlo como un archivo .jar.

Esto es para una aplicación del "mundo real".

¿Cómo puedo exportar para ser un archivo ".exe" o ".dmg" para que pueda instalarse en otra máquina?

Dado que Java es independiente de la plataforma, creo que se trata de exportar para un sistema operativo específico.

He buscado mucho en Google y he leído muchas historias diferentes, por lo que preferiría una respuesta de una persona con experiencia.

+0

posible duplicado de [compilar-a-java-programa-en-an-exe] (http://stackoverflow.com/questions/2011664/compiling-a-java-program-into-an- exe) – asgs

+0

Esto es realmente dos preguntas en una. Crear un iniciador (.exe para Windows y .app para OSX) y luego crear un instalador (.msi para Windows y .dmg para OSX). ¿Revisó si solo el envío de un JAR ejecutable es una opción? – KDM

+0

Dup: http: //stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file – SjB

Respuesta

8

Supongo que lo que está buscando no es solo hacer que el programa sea ejecutable (como lo propuso labster1234), sino que sea realmente instalable. Recientemente hemos utilizado IzPack. En realidad se ve bien.

Hay también algunos tutoriales decentes en los detalles here y here

+1

+1 para IzPack. Se ve bien y tiene una documentación decente. – KDM

4

archivos Jar suelen ser el camino a seguir, ya que la JVM puede ejecutar directamente los archivos empaquetados mediante el comando java -jar <jarfile>. Java WebStart es bueno si desea distribuir su aplicación desde un sitio web, etc. Sin embargo, algunos sistemas operativos no tienen esa "característica" instalada, incluso si la JVM está allí. Otra solución es tener al menos 3 secuencias de comandos para iniciar su aplicación (lote para Windows, script de shell para Linux y cualquier necesidad de Mac, lo siento, no tengo una Mac).

No cree archivos ejecutables nativos (es decir, exe para Windows), son redundantes ya que usted ya tiene una JVM para eso.

+0

JAR-files aún no contiene un icono en Windows. –

+0

Hay una razón por la jarra distribuido como EXE es una opción viable teniendo en cuenta que con el proceso de EXE puede adjuntar 'AppUserModelID' adecuadamente para una interacción adecuada Jump List de Windows 7 especialmente durante el fijar una barra de tareas en combinación con una configuración de instalación que soporta un acceso directo de Windows con la propiedad 'AppUserModelID' – eee

+0

, ¿no es el objetivo de Java poder escribir aplicaciones independientes de la plataforma? Tener un archivo .exe lo hace inútil; también podría generar un ejecutable para Linux y Mac en ese caso. * Ahora puedes * tener un icono con un iniciador, en cualquier sistema operativo. Ese argumento no tiene mucho peso. –

2

Estoy arriesgando una llamarada aquí pero soy un juego :) A menos que esté en una plataforma donde ya se sabe que existe el JRE (por ejemplo, OS X), será una molestia para usted y/o usuarios finales. El problema es que las aplicaciones Java simplemente no son independientes y dependen de un marco masivo.

El JRE, Java Web Start, o lo que sea que use, debe colocarse en el sistema de destino. También debes tener un lanzador de algún tipo. Podría ser algo tan simple como un script que ejecuta java, proporciona el classpath, etc. Esto no sería necesario si java "compiled" a un .exe o algo así, pero así es como funciona.

Esta es una de las razones por las que desactivé la implementación de Java en equipos de usuarios finales. Es solo un montón de problemas. Una vez trabajé en un proyecto en el que realmente incorporamos una jre privada completa que implementó el instalador. No fue lindo, pero hizo el trabajo.

0

Los chicos ya te dieron muchas opciones, así que no quiero volver a mencionarlas. La única opción que falta aquí es un caso en el que realmente necesita instalar su programa, lo que significa ejecutar alguna lógica, modificar (o al menos leer) la configuración del sistema, crear accesos directos en el escritorio, copiar muchos archivos, configurar productos de terceros (que probablemente ya instalado) etc.

En este caso puede usar InstallAnywere, EzPack o soluciones similares (consulte http://java-source.net/open-source/installer-generators) Por ejemplo, si su proyecto es relativamente simple, le recomendaría AntInstaller.

BTW si tiene miedo de que su cliente probablemente no tenga JRE instalado en su máquina, puede empaquetar su código (o mejor, un cargador) utilizando Launch4J que genera el ejecutable de su código java.

1

A partir de Java 8, JDK es ahora capaz de generar su propia instalables para Windows, OS X, y Linux. Sin embargo, en Windows depende de Inno Setup 5 o posterior o WiX 3.0 o posterior.

https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1324980

La forma más fácil de producir una aplicación autónoma es modificar la tarea de distribución. <fx:deploy width="${javafx.run.width}" height="${javafx.run.height}" nativeBundles="all" outdir="${basedir}/${dist.dir}" outfile="${application.title}"> <fx:application name="${application.title}" mainClass="${javafx.main.class}"/> <fx:resources> <fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/> </fx:resources> <fx:info title="${application.title}" vendor="${application.vendor}"/> </fx:deploy>

Cuestiones relacionadas