[JAVA] Faire un install.exe et un programme.exe

Faire un install.exe et un programme.exe [JAVA] - Programmation

Marsh Posté le 08-01-2002 à 23:43:00    

Bonjour!
 
Je m'excuse mais j'ai un peu la flemme de voir si cette question à été déjà soulevé dans ce forum... désolé!
 
Bon voilà mon problème, je dois fourni à mon professeur un programme en java.
 
Avant je zippais le répertoire du programme qui contenait tout les .class et le source .java et j'avais un fichier .bat (effectuant la commande "java programme" ) qui permettait de lancer le programme.
 
Mais bon je voudrais savoir s'il est possible de faire un fichier qui se charge de faire une belle installation windows et un autre fichier .exe qui lance l'application sous windows.
 
Voilà, et merci pour la lecture!

Reply

Marsh Posté le 08-01-2002 à 23:43:00   

Reply

Marsh Posté le 09-01-2002 à 00:19:28    

tu peux utiliser un compilateur natif mais c'est pu vraiment du Java. (va voir sur www.developpez.com)
 
Moi je te conseillerai plutot de faire un joli .jar : sous windows y a qu'à double-cliquer dessus pour lancer l'appli !

Reply

Marsh Posté le 09-01-2002 à 03:10:39    

Merci Benou!
 
Bon jdois avouer que tes 2 réponses me mettent un peu ds le vent... Bouhou chui encore loin d'être un programmeur osi aguerri ke toua!  :crazy:  
 
Mais j'ai bon espoir, après avoir lu pas mal de bouquins, jviens enfin de tomber sur un ki à l'ai vraiment très bon : "Java in a Nutshell"  :D  
 
J'y ai vu un chapitre traitant des .jar dont je ne connais pas encore la fonction. en fait, j'en manipule sans trop savoir ce que c'est. On m'a dit que c'était des sortes de .zip En fin, dans quelques chapitres, j'en serai plus!  :ange:  
 
Pour ce ki est des compilateurs natifs, je ne savais même pas ke cela existait... Enfin, le concept ne me parait pas idiot, ms c'est kan même dommage de perdre ainsi la portabilité du programme.  :(  
 
Je remet un post + tard si je capte pas le chapitre sur les .jar!
 
Merci, a+

Reply

Marsh Posté le 09-01-2002 à 08:21:59    

Roco a écrit a écrit :

Bonjour!
Mais bon je voudrais savoir s'il est possible de faire un fichier qui se charge de faire une belle installation windows et un autre fichier .exe qui lance l'application sous windows.




 
Salut Roco  :hello:  
 
C'est assez amusant parce que je suis justement en train de travailler là dessus. Si tu veux on peut le faire ensemble (tu as mon mail je pense). Concernant ta première question, je rejoins l'avis de benou concernant le Jar file. Cependant, il y a un autre manière.  
 
Le logiciel que je développe actuellement (le truc en e-learning) à une structure du genre
 
webconf/bin
webconf/conf
webconf/lib
webconf/doc
 
où webconf est définis dans l'environnement par WEBCONF_HOME (ex: c:\webconf\)
 
Tu peux très bien créer un fichier batch qui lance ton programme de la façon suivante:
 
java -DWEBCONF_HOME=%WEBCONF_HOME% MonProgramme
 
Ton programme ensuite récupère cette valeur et va, par exemple, chercher un fichier de config dans le répertoire conf (il recoit WEBCONF_HOME=c:\webconf, il rajouter \conf\config.xml par exemple)
 
---> Ainsi tu peux spécifier tes params dans un fichier de config que tu peux éventuellement documenter (dans mon cas c'est le DTD du fichier XML qui est documenté).
 
En clair, soit tu fais un jar file, soit un batch. Mais si tu dois fournir des paramètres à ton prog de manière générale, je pense que ceci est une solution correcte (voir par exemple apache qui utilise ce genre de procédé)
 
Pour le fichier d'install maintenant: Il y a deux produits gratuits actuellement
 
L'installer de winamp: http://www.nullsoft.com/free/nsis/
Inno setup: http://www.jrsoftware.org/isinfo.htm
 
Perso je pense travailler avec le premier. Le second a l'air bcp plus simple (wizard pour créer ton installer, etc.) mais moins puissant.
 
Par exemple tu peux écrire dans la base de registres une clé correspondant au classpath et path de ton appli (Win NT/2000/XP) Ainsi, une fois le prog installé tu tapes le nom de ton fichier batch n'importe où et ca se lance ...
 
Pour la première partie (batch file) j'ai finalisé ca hier
Pour l'installer je regarde ajd
 
A+


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 09-01-2002 à 08:22:40    

benou a écrit a écrit :

 
Moi je te conseillerai plutot de faire un joli .jar : sous windows y a qu'à double-cliquer dessus pour lancer l'appli !  




 
Tiens j'ai une question à ce sujet. C'est dans le manifest du jar file que tu spécifies le main à executer je suppose. Y a moyen de passer des paramètres?
 
A+


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 09-01-2002 à 08:24:23    

Roco a écrit a écrit :

Merci Benou!
Mais j'ai bon espoir, après avoir lu pas mal de bouquins, jviens enfin de tomber sur un ki à l'ai vraiment très bon : "Java in a Nutshell"  :D  
 
Pour ce ki est des compilateurs natifs, je ne savais même pas ke cela existait... Enfin, le concept ne me parait pas idiot, ms c'est kan même dommage de perdre ainsi la portabilité du programme.  :(  




 
Pour les bouquins, une bonne référence est Thinking in Java 2nd edition par Bruce Eckel et disponible gratos sur son site www.BruceEckel.com
 
Pour la portabilité je trouve ta remarque un peu bête. Si tu crées un fichier exe, c'est normal que tu perds la portabilté du programme. Tu as déjà vu un exe sous linux ou solaris toi ? :p
 
:D :D :D
 
A+  :hello:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 09-01-2002 à 10:23:12    

Roco a écrit a écrit :

 
Mais bon je voudrais savoir s'il est possible de faire un fichier qui se charge de faire une belle installation windows et un autre fichier .exe qui lance l'application sous windows.




 
Tu peux essayer Java2Exe, qui comme son nom l'indique convertit une appli java en exécutable Windows.
Tu le trouveras ici : http://www.duckware.com/java2exe.html
 
Personnellement, je ne l'ai jamais essayé (je ne suis pas fan de ce genre d'outils). Si tu tentes l'aventure, fais nous part de tes impressions :)
 
@+

Reply

Marsh Posté le 09-01-2002 à 11:35:02    

Il ya a également InstallAnywhere qui genere des install et des exe a partir de programmes java. C'est un outil commercial utilisé un peut partout mais il existe une version gratuite je crois (InstallAnywhere Now!).
Ca se trouve ici : http://www.zerog.com

Reply

Marsh Posté le 09-01-2002 à 12:48:07    

Bon ben maintenant je vais avoir du boulot pour essayer tout ça! :p
 
Je vais tenter le programme Java2Exe et le .jar  :D  
 
Sinon Dark, je crois que t'as solution de batch, c'est ni plus ni moins une version amélioré de ce que j'utilise actuellement, à savoir un fichier.bat :
 
echo off
cls
java Calculatrice
exit
 
et dans mes variables d'environement de Win 2K:
 
PATH=D:/jdk
CLASSPATH=.
 
En fait, si j'ai bien compris l'intérêt de ton install Dark, c'est de pouvoir, en plus de copier les fichier du programme sur le dique dur de l'utilisateur, pouvoir régler ces CLASSPATH ds sa base de registre?
 
Ou alors de pouvoir en ligne de commande dire au programme où se situe la variable d'environnement?

Reply

Marsh Posté le 09-01-2002 à 13:54:28    

Bon alors des nouvelles du front :)  
 
J'ai testé le programme proposé par iskream. J'ai mis environ 1/2 heure pour comprendre comment cela marchait, aie faut vraiment que je travaille mon anglais!
 
Alors c'est pas mal ça permet de créer un .exe, je n'est pas compris toutes le options, mais ça à l'air assez personnalisable (à savoir on peut mettre un icone de notre convenance pour le fichier.exe).
 
Le premier gros problème que j'ai décelé, c'est que quand vous double-cliquez sur le fichier.exe y'a en premier lieu un message d'alerte Windows qui vous dis que votre version de Java2exe n'est pas enregistré et qu'il faut le faire pour évitez l'appartion de ce message. Assez chiant, surtout quand on voit que ce shareware coûte 100$!
 
Sinon malgré une erreur lors de la création de mon fichier.exe, mon programme lancé avec le fichier.exe marchait parfaitement (il s'agissait d'une petite calculatrice en swing).
 
Voilà!
 
Donc le problème du message d'alerte est quand même assez chiant!
 
A+

Reply

Marsh Posté le 09-01-2002 à 13:54:28   

Reply

Marsh Posté le 09-01-2002 à 14:33:59    

Roco a écrit a écrit :

 
 
Donc le problème du message d'alerte est quand même assez chiant!
 
 




Le fait qu'une boite ou qu'un mec veuille se faire du fric avec un soft qu'il/elle a réalisé, je n'appelle pas ça un problème moi :)
En tout cas, merci pour ce retour d'informations.
Sinon, ce n'est pas le seul projet de ce type qui existe. Lance une recherche sur Google et tu devrais bien en trouver un gratuit :)
 
@+

Reply

Marsh Posté le 09-01-2002 à 14:52:16    

Oui je suis entièrement d'accord avec toi!
 
Le problème c'est que moi je ne compte pas en faire une exploitation commerciale de son soft, donc 100$ c'est un peu cher.
 
Si ça continu, je vais lui envoyer un mail pour lui dire que je suis étudiant et que j'achète son soft 10 Euros si il est d'accord! :)  
 
Bye!

Reply

Marsh Posté le 09-01-2002 à 15:08:47    

Roco a écrit a écrit :

 
Sinon Dark, je crois que t'as solution de batch, c'est ni plus ni moins une version amélioré de ce que j'utilise actuellement, à savoir un fichier.bat :
 
En fait, si j'ai bien compris l'intérêt de ton install Dark, c'est de pouvoir, en plus de copier les fichier du programme sur le dique dur de l'utilisateur, pouvoir régler ces CLASSPATH ds sa base de registre?
 
Ou alors de pouvoir en ligne de commande dire au programme où se situe la variable d'environnement?  




 
Absolument pas. Ma solution de batch file, comme tu dis, est obligatoire car nous faisons tourner le soft sur des stations solaris et linux. Pour nous, pas question de faire un exe.
 
Pour répondre à ton autre question, l'installer de winamp permet d'écrire dans la base de registres. Sous des noyaux NT, les variables d'environements se trouve dans la base de registre. Par conséquent lorque j'installe le soft dans un répertoire choisis de l'utilisateur, il met à jour le bat (WEBCONF_HOME\bin) et le classpath (WEBCONF_BIN\lib\webconf.jar; ...) et il crée la variable WEBCONF_HOME bien sur suivant le choix du user.  
 
Il crée aussi un groupe de programmes. Le but, une fois installer tu cliques et c'est partis ... :)
 
Tu as déjà commencé à travailler pour l'installer? Si non j'ai déjà pas mal bossé sur NSIS ajd et j'ai un truc qui fonctionne (sauf l'enregistrement du path que je suis en train de faire)
 
A+


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 09-01-2002 à 15:18:54    

Nan là j'ai pas le temps de bosser dessus, j'ai des trucs plus urgents et plus chiants à faire...  :(  
 
Quand tu auras finaliser un programme d'installation, envoie-moi un mail pour me dire comment faire! :)  
 
Bye!

Reply

Marsh Posté le 09-01-2002 à 15:26:31    

Roco a écrit a écrit :

Nan là j'ai pas le temps de bosser dessus, j'ai des trucs plus urgents et plus chiants à faire...  :(  
 
Quand tu auras finaliser un programme d'installation, envoie-moi un mail pour me dire comment faire! :)  
 
Bye!  




 
Mon script NSI pour NSIS (winamp installer)
 

Code :
  1. ;webconf.nsi
  2. ;
  3. ;Install script by Stéphane Nicoll - Infonet, FUNDP
  4. ;-)Add_Publisher "Infonet group, FUNDP"
  5. ;-)Add_Contact webconf@infonet.fundp.ac.be
  6. ;-)Add_Publisher_URL http://www.infonet.fundp.ac.be
  7. ;-)Add_Product_URL http://www.infonet.fundp.ac.be/soft/webconf/
  8. ;-)Add_Comments "Use our mailing list if you have any question"
  9. ; ----- Define version -----
  10. !define VER_MAJOR 3
  11. !define VER_MINOR 0.2
  12. ; ----- Program identification and name -----
  13. Name "WebConf v${VER_MAJOR}.${VER_MINOR}"
  14. Caption "WebConf v${VER_MAJOR}.${VER_MINOR} Setup"
  15. OutFile "setup.exe"
  16. ; ----- Some default compiler settings -----
  17. AutoCloseWindow false
  18. ShowInstDetails show
  19. ShowUninstDetails show
  20. SetCompress auto
  21. SetDatablockOptimize on
  22. SetOverwrite ifnewer
  23. CRCCheck on
  24. ; ----- Components ------
  25. ComponentText "This will install WebConf v${VER_MAJOR}.${VER_MINOR} on your computer."
  26. SilentInstall normal
  27. InstType "Typical"
  28. InstType "Full"
  29. InstType "Minimal"
  30. ;InstType /NOCUSTOM
  31. ;Icon d:\releases\infonet.ico
  32. ;EnabledBitmap  d:\releases\checked.bmp    ; Used for components (custom install)
  33. ;DisabledBitmap d:\releases\nochecked.bmp
  34. ; ----- Colors -----
  35. BGGradient 0000FF 000000 FFFFFF
  36. InstallColors FFFFFF 000000
  37. InstProgressFlags smooth colored
  38. ; ----- Installation directory -----
  39. DirShow show
  40. DirText "WebConf setup has determined the location to install, select new location if you like then press [INSTALL] to start installation" "WebConf v${VER_MAJOR}.${VER_MINOR} will be installed in the following folder:"
  41. InstallDir "$PROGRAMFILES\WebConf"
  42. InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Infonet\WebConf" ""
  43. ; ----- License text -----
  44. LicenseText "You must agree to this license before installing."
  45. LicenseData "license.txt"
  46. ; ----- INSTALL SECTIONS -----
  47. ;-------------------- WEBCONF INSTALLATION --------------------
  48. Section "WebConf (required)"
  49. SectionIn 1 2 3
  50. SetOutPath $INSTDIR
  51. ; root directory
  52. File d:\releases\*.*
  53. ; /bin directory
  54. File /r d:\releases\bin
  55. ; /conf directory
  56. File /r d:\releases\conf
  57. ; /lib directory
  58. File /r d:\releases\lib
  59. ; Register software in the registry
  60. WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Infonet\WebConf" "" "$INSTDIR"
  61. WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\WebConf" "DisplayName" "WebConf v${VER_MAJOR}.${VER_MINOR} (remove only)"
  62. WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\WebConf" "UninstallString" '"$INSTDIR\uninstall\uninst.exe"'
  63. ; write out uninstaller
  64. WriteUninstaller "$INSTDIR\uninstall\uninst.exe"
  65. SectionEnd ;
  66. ; --------------------- SHORTCUTS -----------------------------
  67. Section "Create program files"
  68. SectionIN 1 2 3
  69. ReadRegStr $OUTDIR HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common Programs"
  70. StrCmp $OUTDIR "" nocommon
  71. CreateDirectory "$OUTDIR\WebConf"
  72. CreateShortCut "$OUTDIR\WebConf\Start WebConf.lnk" "$INSTDIR\bin\webconf.bat"
  73. CreateShortCut "$OUTDIR\WebConf\README.lnk" "$INSTDIR\README.txt"
  74. ;CreateShortCut "$OUTDIR\WebConf\Infonet web site.lnk" "$INSTDIR\README.txt"
  75. nocommon:
  76. SetOutPath $INSTDIR ; restore $OUTDIR
  77. SectionEnd ;
  78. ; -------------------- DOCUMENTATION --------------------------
  79. Section "Documentation"
  80. SectionIn 1 2
  81. SetOutPath $INSTDIR
  82. ; /doc directory
  83. File /r d:\releases\doc
  84. SectionEnd ;
  85. ; --------------- SOURCE CODE ---------------------------------
  86. Section "Source code"
  87. SectionIn 2
  88. SetOutPath $INSTDIR
  89. ; /src directory
  90. File /r d:\releases\src
  91. SectionEnd ;
  92. ; ----- UNINSTALL SECTION -----
  93. UninstallText "This will uninstall WebConf v${VER_MAJOR}.${VER_MINOR} from your system"
  94. Section Uninstall
  95. Delete "$INSTDIR\bin\*.*"
  96. Delete "$INSTDIR\conf\*.*"
  97. Delete "$INSTDIR\lib\*.*"
  98. Delete "$INSTDIR\doc\*.*"
  99. Delete "$INSTDIR\src\*.*"
  100. Delete "$INSTDIR\uninstall\uninst.exe"
  101. DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Infonet - FUNDP\WebConf"
  102. DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WebConf"
  103. RMDir "$INSTDIR"
  104. SectionEnd ; end of uninstall section
  105. ; ----- Functions -----
  106. ;called when the install was successful
  107. Function .onInstSuccess
  108. MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to consult the README file?" IDNO NOReadme
  109. ExecShell open "$INSTDIR\README.txt"
  110. NOReadme:
  111. FunctionEnd
  112. ;called when the user hits the 'cancel' button
  113. Function .onUserAbort
  114. MessageBox MB_YESNO "Abort install?" IDYES NoCancelAbort
  115. Abort
  116. NoCancelAbort:
  117. FunctionEnd
  118. ;called when the installer is nearly finished initializing
  119. Function .onInit
  120. # [show splash screen]
  121. SetOutPath $TEMP
  122. File /oname=spltmp.bmp "d:\releases\infonet.bmp"
  123. File /oname=spltmp.exe "C:\sPiMP\splash.exe"
  124. ExecWait '"$TEMP\spltmp.exe" 2000 $HWNDPARENT $TEMP\spltmp'
  125. Delete $TEMP\spltmp.exe
  126. Delete $TEMP\spltmp.bmp
  127. FunctionEnd
  128. ; eof


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 09-01-2002 à 18:34:37    

:hello:  
moi j en avait essayé a l epoque :
1)Install anywhere crée des excutable assez lourd (meme lorsque l exe ne contient pas la VM) po cool
2)=J to Exe>> pas evident a distribué et plutot lent tu doit obligatoirement mettre le jre ds le fichier d install celui ci n etant pas compressé ca devient lourd la encore
3)y a aussi Jet exislsor qui compile natif mais j ai jamais reussi a l installé...
jerry

Reply

Marsh Posté le 09-01-2002 à 18:40:32    

bon ben chui un peu depassé la jToexe n est plus ce qu il etait a l epoque :avant y avait pas ce message qui s affichait deja (essaye d avoir une ancienne version) et puis maitenant l exe semble autonome c bien mais 100$ c excessif!

 

[edtdd]--Message édité par veryfree--[/edtdd]

Reply

Marsh Posté le 09-01-2002 à 19:20:45    

Kool pour Java2exe, le mec (où la sté plutôt) me propose une version éducation à 50$!
 
Encore trop cher...

Reply

Marsh Posté le 09-01-2002 à 20:54:32    

Si y'en a que ça interesse, on peut se payer une licence de Java2exe à plusieurs...

Reply

Marsh Posté le 10-01-2002 à 00:49:20    

Roco a écrit a écrit :

Si y'en a que ça interesse, on peut se payer une licence de Java2exe à plusieurs...  




ben c'est pas très légal ...

Reply

Marsh Posté le 10-01-2002 à 00:49:59    

darklord22 a écrit a écrit :

 
Pour les bouquins, une bonne référence est Thinking in Java 2nd edition par Bruce Eckel et disponible gratos sur son site www.BruceEckel.com




en français : http://penserenjava.free.fr

Reply

Marsh Posté le 10-01-2002 à 00:54:55    

darklord22 a écrit a écrit :

 
Tiens j'ai une question à ce sujet. C'est dans le manifest du jar file que tu spécifies le main à executer je suppose. Y a moyen de passer des paramètres?




 
ouais c'est ca : tu délares la classe dans laquelle trouver le main. je ne pense pas qu'on puisse déclarer de parametre dans le manifest. Ca aurait un intérêt limité vu qu'il faudrait décompresser le manifest, le modifier puir le réintégré au Jar ... autant mettre ces paramètres direct dans le main ! ;)
 
mais ce qui est possible c'est de faire un bat :  
java -jar -DtonParametreSystem=taValeurSystem tonFichierJar.jar
 
ou bien comme ca avec les paramètres de ligne de commande :
java -jar tonFichierJar.jar param1 param2 param3

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed