2009-05-13 10 views
16

Cómo crear un instalador utilizando Java que combinan Tomcat, MySQL y archivo de la guerra y salir un EXE final?Cómo crear instalador de Java webapp (.exe) que incluye Tomcat y MySQL?"

+0

¿Crees que podrías ser un poco más específico, quieres que el exe instale tomcat y mysql en el sistema o quieres que sea un exe que ejecutará tanto a tomcat como a mysql como daemons o algo así? –

+0

Sí, el instalador exe necesita instalar el script tomcat, mysql, aplicación web y db todo de una vez. Al final, los usuarios solo necesitan iniciar el servicio de tomcat y mysql. Ir al navegador puede acceder a la aplicación web. – Wilson

+0

¿Alguien puede editar el título de la pregunta para ser un poco más descriptivo? ("¿Cómo crear un instalador de aplicaciones Java (.exe) que incluya Tomcat y MySQL?", O algo así.) Gracias. – Jonik

Respuesta

19

Puede usar cualquier instalador, realmente. Personalmente he usado InnoSetup, que es bastante simple, pero aún puedo realizar casi cualquier tarea en el momento de la instalación.

En su caso, es probable que desee colocar los archivos de Tomcat en algún lugar, incluida la aplicación web. Personalice algunos archivos de configuración y ejecute el instalador de MySQL en modo silencioso. Todo lo cual es perfectamente posible con InnoSetup.

Si necesita más flexibilidad, puede consultar NSIS, otra aplicación de instalación muy simple pero muy potente.

+1

Gracias por su recomendación ... InnoSetup es bueno y fácil de usar. – Wilson

+0

Alguien publicó una pregunta de seguimiento sobre cómo hacer esto con la instalación de Inno: http://stackoverflow.com/questions/938925/how-to-use-inno-setup-to-create-an-installer-for-installing -the-tomcat-mysql-we – Jonik

+3

El enlace de Jonik está muerto – rogerdpack

1

Yo sugeriría, que utilizas Java para esto, un installer.jar. Como quieras ejecutar tomcat de todos modos, no hay necesidad de poner un archivo exe. Hemos hecho algo similar, programando un instalador jar con la ayuda de Ant API (ant programación)

+0

Puede darnos un poco más de información sobre esto, me gustaría saber más sobre él y cómo se hace. –

+0

Descargue el jar Ant del sitio web Apache y juegue un poco con la API. En lugar de utilizar quizás el comando XML , utilice una clase Copiar y ejecutar algunos métodos. – Mork0075

+0

oh, ya veo lo que quieres decir. entonces, ¿lo instala cuando compila en lugar de implementar una instalación en una máquina cliente/servidor? –

9

Las posibles opciones se han cubierto en gran medida en varias cuestiones ya, especialmente:.

... y otras preguntas tagged java + installer

aunque es cierto que algunas de las opciones mencionadas en dichas cuestiones no pueden producir instaladores .exe autosuficientes. Si una herramienta comercial está bien para usted, personalmente puedo recomendar install4j (costos $); entre otras cosas, puede crear instaladores .exe (details about my experiences with it). O bien, para obtener una herramienta más simple y gratuita para producir ejecutables de Windows a partir de programas Java, consulte Launch4j.

actualización de mi recomendación install4j, en base a este comentario por OP:

Sí, el instalador exe necesidad de instalar el guión Tomcat, MySQL, aplicaciones web, y db todo en una sola vez. Al final, los usuarios solo necesitan iniciar el servicio mysql de tomcat y . Ir al navegador puede acceder a la aplicación web.

Con install4j,

  • puede agrupar Tomcat, MySQL y su aplicación web muy bien
  • puede comenzar automáticamente a los servicios también desde el instalador (o dejar que los usuarios como usted sugiere)
  • si lo desea, el instalador puede incluso iniciar directamente el navegador y el punto a su aplicación web :-)

acabo de hacer tan Algo similar ocurre con install4j (paquete de servidor de aplicaciones, aplicación web, ejecutar scripts de bases de datos y muchas otras cosas; sin empaquetar la base de datos, sin embargo), así que estoy relativamente seguro de que se puede hacer. No sé si puedes hacer esto (fácilmente) con las herramientas gratuitas como Launch4j.

+0

-1 Esto no está cubierto en ninguna de las anteriores. Él está hablando claramente de la instalación de tomcat y mysql con una GUERRA no una aplicación java sino una aplicación web java. –

+0

Bueno, se ha cubierto en cierta medida, ya que, por ejemplo, con install4j puede incluir archivos Tomcat, MySQL, WAR o lo que desee. – Jonik

+0

Quiero decir, si estamos hablando de crear instaladores .exe para el software Java, las herramientas posibles serán las mismas de todos modos, sin importar si se trata de una aplicación web o no. – Jonik

0

Puede usar BitRock InstallBuilder para ello (cuesta $). Para ejemplos de tales programas, consulte los instaladores de aplicaciones Alfresco, Liferay, etc. que incluyen Tomcat, MySQL, etc. en BitNami

4

Aquí está mi solución minimalista a este problema. He descargado las instalaciones de Tomcat y MySQL sin el instalador, así que simplemente las descomprimí, y las intenté funcionan bien. En este momento instalarás el archivo war para tomcat y el esquema relevante para mysql. Entonces cuando copias las carpetas, todo se copia. Y puedes probar cómo funciona. Probablemente pueda hacer algunos ajustes en ellos, pero para mí funcionan muy bien desde el primer momento, ya que mi aplicación no es tan exigente. Aparte de eso, he descargado versiones de programas de 32 y 64 bits para que ambos puedan ser instalados. Utilicé la configuración de Inno para empaquetar el instalador. Básicamente, solo copia las dos carpetas eligiendo la arquitectura 32 o 64, e instala ambas, tomcat y mysql, como servicio de Windows.

[Setup] 
AppName=MyApp 
AppVersion=1.0 
DefaultDirName={pf}\MyApp 
DefaultGroupName=MyApp 
Compression=lzma2 
SolidCompression=yes 
OutputDir=output 
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be 
; done in "64-bit mode" on x64, meaning it should use the native 
; 64-bit Program Files directory and the 64-bit view of the registry. 
; On all other architectures it will install in "32-bit mode". 
ArchitecturesInstallIn64BitMode=x64 
; Note: We don't set ProcessorsAllowed because we want this 
; installation to run on all architectures (including Itanium, 
; since it's capable of running 32-bit code too). 

[Files]    
; Install x64 if running in 64-bit mode (x64; see above), x86.exe otherwise. 
Source: "mysql-5.5.13-winx64\*.*"; DestDir: "{app}\mysql"; Check: Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
Source: "mysql-5.5.13-win32\*.*"; DestDir: "{app}\mysql"; Check: not Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
; Install x64 if running in 64-bit mode (x64; see above), x86.exe otherwise. 
Source: "apache-tomcat-6.0.32-x64\*.*"; DestDir: "{app}\tomcat"; Check: Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
Source: "apache-tomcat-6.0.32-x86\*.*"; DestDir: "{app}\tomcat"; Check: not Is64BitInstallMode; Flags: ignoreversion recursesubdirs createallsubdirs 
; 
Source: "start.bat"; DestDir: "{app}"; DestName: "start.bat"; 
Source: "stop.bat"; DestDir: "{app}"; DestName: "stop.bat"; 

[Icons]  
Name: "{group}\Start MyApp"; Filename: "{app}\start.bat" 
Name: "{group}\Stop MyApp"; Filename: "{app}\stop.bat" 

[Run]  
; install mysql and tomcat as services 
Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "--install MyApp_MySQL" 
Filename: "{app}\tomcat\bin\service.bat"; Parameters: "install" 
Filename: "{app}\start.bat"; Description: {cm:LaunchProgram,{cm:AppName}}; Flags: nowait postinstall skipifsilent 

[UninstallRun] 
; uninstall mysql and tomcat as services 
Filename: "{app}\stop.bat"; 
Filename: "{app}\mysql\bin\mysqld.exe"; Parameters: "--remove MyApp_MySQL" 
Filename: "set"; Parameters: "CATALINA_HOME={app}\tomcat" 
Filename: "{app}\tomcat\bin\tomcat6.exe"; Parameters: "//DS//MyApp_Tomcat" 

[CustomMessages] 
AppName=MyApp 
LaunchProgram=Start MyApp after finishing installation 

Para ejecutar su aplicación ahora, todo lo que necesita es iniciar/detener los servicios registrados. start.bat

NET START MyApp_MySQL 
NET START MyApp_Tomcat 
START "" "http://localhost:8080/myapp/" 

stop.bat

NET STOP MyApp_MySQL 
NET STOP MyApp_Tomcat 

Para mí funciona bien.

  • Tal vez usted puede incluir la instalación de JRE así, causar algunos composiciones podrían no tenerlo.
  • Además, si alguien sabe cómo inspeccionar si Tomcat y MySQL puertos ya están tomadas, y cómo cambian en archivo de configuración, por favor nos dicen.
  • También si puede inspeccionar la dirección IP y escribirla en lugar de localhost que sería genial.

Saludos

Amir

0

Una mejor manera es utilizar IzPack, es mejor que otros porque, sólo se necesita para ser empaquetado de una vez y se puede utilizar en cualquier sistema operativo con la misma compilado tarro.

Personalmente lo utilicé para empaquetar tomcat, mysql y algunos otros requisitos previos para mi aplicación web.

Usé Launch4J para crear ejecutable (.exe) desde el archivo jar generado por IzPack.

Cuestiones relacionadas