Comment créer Java webapp installer (.exe) qui inclut Tomcat et MySQL?"

comment créer un programme d'installation en utilisant Java qui combine les fichiers tomcat, mysql et war et en sort un exe final?

16
demandé sur user3270575 2009-05-13 12:31:56

6 réponses

vous pourriez utiliser n'importe quel installateur, vraiment. J'ai personnellement utilisé InnoSetup, qui est assez simple, mais peut encore effectuer presque n'importe quelle tâche au moment de l'installation.

dans votre cas, vous voulez probablement placer les fichiers Tomcat quelque part, webapp inclus. Personnalisez certains fichiers de configuration et lancez L'installateur MySQL en mode silencieux. Tout cela est parfaitement possible avec InnoSetup.

Si vous avez besoin de plus de flexibilité, vous pouvez regarder ins, une autre application d'installateur très simple mais très puissante.

19
répondu Gerco Dries 2009-05-13 08:53:42

les options possibles ont déjà été largement couvertes par plusieurs questions, notamment:

...et d'autres questions tagged java + installer

Bien que il est vrai que certaines options mentionnées dans ces questions ne peuvent produire l'autosuffisance .exe les installateurs. Si un outil commercial est ok pour vous, je peux personnellement recommander install4j (frais de $); entre autres choses, il peut créer .exe les installateurs (des détails sur mes expériences avec elle). Ou, pour un outil plus simple et gratuit pour produire des exécutables Windows à partir de programmes Java, voir Launch4j.

mise à Jour de ma recommandation install4j, d'après ce commentaire de OP:

Oui, le fichier exe installateur besoin d'installer le tomcat, mysql, applications web, et db script en une seule fois. À la fin, les utilisateurs seulement besoin pour démarrer tomcat et mysql service. Aller au navigateur peut accédez à l'application web.

avec install4j,

  • vous pouvez bundle Tomcat, MySQL et votre webapp juste fine
  • vous pouvez démarrer automatiquement les services de l'installateur (ou à laisser pour les utilisateurs comme vous le suggérez)
  • si vous le souhaitez, l'installateur peut même lancer directement le navigateur et le pointer vers votre webapp: -)

je viens de faire une chose similaire avec install4j (bundle application server, webapp, exécuter des scripts de base de données, et bien d'autres choses; sans toutefois empaqueter la base de données), donc je suis relativement sûr que cela peut être fait. Je ne sais pas si vous pouvez le faire (facilement) avec les outils gratuits tels que Launch4j.

9
répondu Jonik 2017-05-23 11:54:51

voici ma solution minimaliste à ce problème. J'ai téléchargé des installations tomcat et MySQL sans installateur, donc je les ai juste décompressées, et je les ai essayées elles fonctionnent très bien. A ce moment, vous installerez le fichier war sur tomcat, et le schéma correspondant sur mysql. Donc quand vous copiez les dossiers tout est copié. Et vous pouvez tester comment ça marche. Probablement vous pouvez faire quelques mises au point sur eux, mais pour moi, ils fonctionnent très bien, car mon application n'est pas si exigeante. En dehors de cela J'ai téléchargé les versions 32 et 64 bits des programmes afin qu'ils puissent tous les deux être installés. J'ai utilisé Inno setup pour empaqueter l'installateur. Fondamentalement, il ne copie les deux dossiers en choisissant l'architecture 32 ou 64, et installe les deux, tomcat et mysql, comme service 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

pour exécuter votre application vous avez besoin pour démarrer/arrêter les services enregistrés. commencer.chauve-souris

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

arrêter.chauve-souris

NET STOP MyApp_MySQL
NET STOP MyApp_Tomcat

pour moi ça marche très bien.

  • peut-être Pouvez-vous inclure JRE l'installation aussi, cause certains comps pourrait ne pas l'avoir.
  • Aussi, si quelqu'un sait comment inspecter les ports de tomcat et mysql sont déjà prises, et comment modifier dans le fichier conf, merci dites-le nous.
  • aussi si vous pouvez inspecter L'IP adresse et tapez-la au lieu de localhost ce serait génial.

Cordialement

Amir

5
répondu Amir Jamak 2011-06-27 08:16:55

je suggère, que vous utilisiez Java pour ceci, un installateur.pot. Comme vous voulez lancer tomcat de toute façon, il n'y a pas besoin de mettre un fichier exe. Nous avons fait quelque chose de similaire, programmer un installateur jar avec L'aide de L'API Ant (Ant utilisé programmatiquement).

1
répondu Mork0075 2009-05-13 08:37:01

Vous pouvez utiliser BitRock InstallBuilder (frais de $). Pour des exemples de tels programmes, consultez Alfresco, Liferay,etc. les installateurs d'applications qui incluent Tomcat, MySQL, etc. BitNami

0
répondu Daniel Lopez 2013-06-17 22:56:35

Une meilleure façon est d'utiliser IzPack, c'est mieux que d'autres parce que, il n'est nécessaire de l'empaqueter qu'une seule fois et peut être utilisé sur n'importe quel système D'exploitation avec le même jar compilé.

Je l'ai personnellement utilisé pour empaqueter tomcat, mysql et d'autres pré-requis pour mon application web.

j'ai utilisé Launch4J pour la création de l'exécutable(.exe) du fichier JAR généré par IzPack.

0
répondu Alok 2017-07-19 19:07:07