2009-05-13 9 views
16

Come creare un programma di installazione utilizzando Java che combinano Tomcat, il file mysql e la guerra e venire fuori un exe finale?Come creare installer webapp Java (.exe) che include Tomcat e MySQL?"

+0

Pensi che potresti essere un po 'più specifico, vuoi che l'exe installi tomcat e mysql nel sistema o vuoi che sia un exe che eseguirà sia tomcat che mysql come demoni o qualcosa del genere? –

+0

Sì, l'installer exe deve installare il tomcat, mysql, l'applicazione Web e lo script db tutto in una volta. Alla fine, gli utenti devono solo avviare il servizio tomcat e mysql. Vai al browser può accedere all'applicazione web. – Wilson

+0

Qualcuno può modificare il titolo della domanda per essere un po 'più descrittivo? ("Come creare l'installer webapp Java (.exe) che include Tomcat e MySQL?", O qualcosa del genere.) Grazie. – Jonik

risposta

19

È possibile utilizzare qualsiasi programma di installazione, davvero. Personalmente ho usato InnoSetup, che è abbastanza semplice, ma può ancora eseguire quasi tutte le attività al momento dell'installazione.

Nel tuo caso, probabilmente vuoi posizionare i file Tomcat da qualche parte, inclusa la webapp. Personalizza alcuni file di configurazione ed esegui il programma di installazione MySQL in modalità silenziosa. Tutto ciò è perfettamente possibile con InnoSetup.

Se è necessaria maggiore flessibilità, è possibile consultare NSIS, un'altra applicazione di installazione molto semplice ma molto potente.

+1

Grazie per la tua raccomandazione..InnoSetup è buono e facile da usare. – Wilson

+0

Qualcuno ha postato una domanda successiva su come eseguire questa operazione con Inno Setup: http://stackoverflow.com/questions/938925/how-to-use-inno-setup-to-create-an-installer-for-installing -the-tomcat-mysql-we – Jonik

+3

Il link di Jonik è morto – rogerdpack

1

Vorrei suggerire, che tu usi Java per questo, un installer.jar. Come vorresti eseguire tomcat in ogni caso, non c'è bisogno di inserire un file exe. Abbiamo fatto qualcosa di simile, programmando un programma di installazione di jar con l'aiuto dell'API Ant (Ant utilizzato a livello di codice)

+0

Puoi dare un po 'più di informazioni su questo, mi piacerebbe sapere di più su di esso e come è fatto. –

+0

Scarica Ant jar dal sito Web di Apache e gioca un po 'con l'API. Invece di usare forse il comando XML , usa una copia di classe ed esegui alcuni metodi. – Mork0075

+0

oh, capisco cosa intendi. così lo si installa quando si compila invece di distribuire un'installazione su un computer client/server? –

9

Le possibili opzioni sono state in gran parte coperto in diverse domande già, in particolare:.

... e altre domande tagged java + installer

Anche se certamente alcune opzioni menzionate in queste domande non possono produrre gli installatori .exe autosufficienti. Se uno strumento commerciale è ok per te, posso personalmente raccomandare install4j (costi $); tra le altre cose, può creare programmi di installazione .exe (details about my experiences with it). Oppure, per uno strumento più semplice e gratuito per la produzione di file eseguibili di Windows da programmi Java, vedere Launch4j.

Aggiornamento della mia raccomandazione install4j, sulla base di questo commento di OP:

Sì, il programma di installazione exe necessità di installare lo script Tomcat, MySQL, applicazioni web, e db tutto in una volta. Alla fine, gli utenti devono solo avviare il servizio myscl di tomcat e . Vai al browser può accedere all'applicazione web.

Con install4j,

  • si può racchiudere Tomcat, MySQL e il vostro webapp bene
  • è possibile avviare automaticamente i servizi anche dal programma di installazione (o lasciarlo agli utenti come lei suggerisce)
  • se si vuole, l'installatore può anche lanciare direttamente il browser e puntarlo al vostro webapp :-)

ho appena fatto come cosa diversa con install4j (bundle application server, webapp, script di database e molte altre cose; senza impacchettare il database comunque), quindi sono relativamente sicuro che possa essere fatto. Non so se puoi farlo (facilmente) con gli strumenti gratuiti come Launch4j.

+0

-1 Questo non è coperto in nessuno dei precedenti. Sta chiaramente parlando dell'installazione di tomcat e mysql con un'applicazione WAR non java ma una webapp java. –

+0

Beh, è ​​stato coperto in una certa misura, dal momento che ad esempio con install4j è possibile includere i file Tomcat, MySQL, WAR o qualsiasi altra cosa si desideri. – Jonik

+0

Voglio dire, se stiamo parlando di creare programmi di installazione .exe per il software Java, gli strumenti possibili saranno uguali, indipendentemente dal fatto che si tratti di un'applicazione web o meno. – Jonik

0

È possibile utilizzare BitRock InstallBuilder per questo (costi $). Per esempi di tali programmi, controllare Alfresco, Liferay, ecc programmi di installazione che includono Tomcat, MySQL, ecc. A BitNami

4

Ecco la mia soluzione minimalista a questo problema. Ho scaricato le installazioni di tomcat e MySQL senza programma di installazione, quindi le ho semplicemente decompresse e ho provato che funzionano bene. In questo momento installerai il file war su tomcat e lo schema relativo al mysql. Quindi quando copi le cartelle, tutto viene copiato. E puoi testare come funziona. Probabilmente puoi fare qualche messa a punto su di loro, ma per me funzionano subito bene, dato che la mia app non è così impegnativa. Oltre a ciò ho scaricato sia la versione a 32 che a 64 bit dei programmi in modo che possano essere installati entrambi. Ho usato Inno setup per impacchettare il programma di installazione. Fondamentalmente copia solo entrambe le cartelle scegliendo l'architettura 32 o 64 e installa sia tomcat che mysql come servizio 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 

Per eseguire l'app ora tutto ciò che serve è avviare/interrompere i servizi registrati. 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 

Per me funziona bene.

  • Forse è possibile includere JRE installazione come pure, causare alcuni composizioni potrebbero non averlo.
  • Anche se qualcuno sa come ispezionare se Tomcat e MySQL porte sono già occupati, e come a cambiare nel file di configurazione, si prega di ci dicono.
  • Anche se è possibile controllare l'indirizzo IP e digitarlo invece di localhost sarebbe fantastico.

saluti

Amir

0

Un modo migliore è usare IzPack, è meglio di altri perché, è necessario solo per confezionare una volta e può essere utilizzato su qualsiasi sistema operativo con la stessa compilato vaso.

L'ho utilizzato personalmente per il packaging di tomcat, mysql e altri prerequisiti per la mia applicazione web.

Ho utilizzato Launch4J per la creazione di file eseguibili (.exe) dal file jar generato da IzPack.

Problemi correlati