2010-02-16 42 views
13

He creado un archivo JAR y quiero ejecutarlo en un cliente. Tengo un par de preguntas:¿Cómo puedo convertir un archivo JAR en un archivo EXE?

  1. ¿Cómo puedo convertir el archivo JAR en un archivo EXE?
  2. ¿Cómo puedo encriptar los contenidos del archivo JAR? El archivo jar se puede extraer con WinRAR y las clases se pueden descompilar con cualquier descompilador de Java.
  3. ¿Cómo puedo crear un instalador? Mis clientes no tienen JVM y no quiero enviar JDK o JRE, ya que tienen un gran tamaño.
+0

Si convierte el jar a un exe (¿en Windows supongo?) Probablemente extraerá la mitad de la jre en el exe para satisfacer las dependencias. – extraneon

+0

http://yuvadeveloper.blogspot.com/2009/03/convert-jar-files-to-exe.html –

Respuesta

13
  1. Ver este enlace: Java to Exe. También explica qué razones válidas son para hacer esto y cuándo no.

  2. Realmente no se pueden encriptar los archivos binarios ya que la máquina debe entenderlos. Dicho esto, un archivo ejecutable optimizado es muy difícil de descompilar, mientras que los archivos de clase simple son sencillos.

  3. Si tiene un exe hay instaladores suficientes.

8

JSmooth es una aplicación que va a envolver su tarro en un exe

sino que también le permite comprobar si la versión correcta de JRE está disponible en el sistema que está desplegando a

http://jsmooth.sourceforge.net/

2

En cuanto a 1): supongo que no se puede. Puede haber herramientas, pero no puede hacer eso con las herramientas estándar enviadas con JDK, ya que destruiría la independencia de la plataforma. (Consulte otras respuestas que proporcionan enlaces a tales herramientas de terceros)

En cuanto a 3): Use InnoSetup para crear el instalador. Incluya JRE en la configuración y deje que InnoSetup lo instale sobre la marcha.

+0

Realmente no puedo ver la independencia de la plataforma como un requisito. Por lo general, se dirige a una audiencia, no a una plataforma. Si se han estandarizado en un entorno, puede orientar Y probar eso. – extraneon

+0

Quise decir que una herramienta de este tipo no se enviaría con JDK debido a razones de independencia de la plataforma. JDK envía herramientas para crear y empaquetar aplicaciones para cualquier plataforma en cualquier plataforma. –

2

No se puede evitar la descompilación. Lo mejor que puede hacer es hacerlo más difícil o consumir más tiempo para hacerlo. Sin embargo, como respuesta a su pregunta, creo que puede usar gcj para compilar Java en EXE.

+2

+1 para señalar la inutilidad de tratar de evitar la ingeniería inversa. –

2

Puede ser Excelsior JET satisfará sus necesidades.) En mi humilde opinión producto muy maduro.

1

1) Recientemente he probado el programa jarToExe y me gusta. Algunas características son:

  • versión básica gratuita o muy barata ($ 30) para 'empresa'
  • capacidad de tener lista del administrador de tareas de Windows nombre de su aplicación java en lugar del defecto.exe
  • ofuscación adicional
  • verificación de tiempo de ejecución que está instalado java

2) Usted puede hacer que sea más difícil al ingeniero usando proguard u otro Ofuscador revertir

3) nsis es una muy poderosa, lenguaje de scripting gratuito para crear instaladores de Windows. Buena documentación en la wiki del sitio y soporte en desbordamiento de pila también.

1

Launch4j funcionó para mí, mientras que algunas herramientas no habían funcionado. También tiene una buena guía here.

¡Espero que esta ayuda!