IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Comment Faire des jar?


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 265
    Par défaut Comment Faire des jar?
    Un grand merci a tous pour ce genre de tutoriaux, concernant des choses qui paraissent de prime a bord simple comme les Java Web Start, Variables d'environnement etc...
    J'ai essaye de faire le tp -de Johann Sorel que je remercie chaleureusement aussi- sur le java web start qui m'a l'air tres bien fait.
    Cependant le tp ne marche pas parce que j'ai peut etre pas bien fait le .jar es ce que quelqu'un pourrait il me dire comment generer un jar pour une classe toute simple ou une application.

    J'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jar cvf MonApplication.class
    Es ce que c'est bon??? Es ce que ca suffit ???
    En vous remerciant a l'avance

    Cordialement

  2. #2
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    Très honnetement je ne fais plus celà a la main en console quel éditeur utilises tu?
    Avec Eclipse par exemple:

    File> Export> Jar. Tu selectionnes la main classe et tout roule.

    Un jar ca peut être 2 choses a priori:
    - Executable définit par un manifest qui dit quelle classe sera lancée quand on double clic.
    - Une api simple qui n'est qu'une bibliothèque ne contenant pas d'éxecutable.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 265
    Par défaut
    Je voudrai faire une class java executable a la main. Justement je ne veux plus utiliser les editeurs comme Eclipse, JBuilder, netBean et Visual J++ etc...
    Leur defaut principal c'est que justement ils sont trop bien fait au point qu'ils nous masquent ce qu'il faut faire. Je sais qu'on peut le faire en un clic de souris avec JBuilder et sous Eclipse c'est tout aussi facile. Mais le probleme c'est que quand on s'habitue de trop a la facilite, on finit par oublier l'essentiel, surtout quand on est chez le client, ou il n'a pas Windows, n'a pas Eclipse, encore moins JBuilder, alors il faut se debrouiller. Parce que les classpath, path et autres variables d'environnement il faut les remplir a la main. Du coup je me suis rendu compte que je ne savais plus rien faire. D"ou l'objet de ma question
    J'ai bien sure regarder le tutoriel JWS que vous avez gentillement mis a notre disposition mais ca ne marche pas, et je voudrai bien savoir pourquoi.


    Cordialement

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    alors j'ai ce qu'il te faut

    Je biens de me mettre a Java pour ma culture perso et je developpe "a la main" pour comprendre et maitriser toutes les etapes de la conceptions. Les IDE masquent beaucoup de choses ...

    J'ai monté un ficheir "compile.bat" pour faciliter la compilation/Test.

    LA structrure du programme :
    -c:\Java
    |_ monappli
    |_src
    | |_monappli
    | | |_forms
    | | |_units
    | |_malib
    |_bin
    | |_monappli
    | | |_forms
    | | |_units
    | |_malib
    | |_META-INF
    |_out
    donc :
    - c:\java est le repertoire de base ou je met les sources de mes projets.
    - mon appli contient le projet relatif a mon application "monappli"
    - src contient les ficheirs sources java
    - bin les fichier "class"
    - out les fichiers "jar"
    - dans src/bin, "monappli" contient les classes relative a l'applciation et "lib" celles relative a d'eventuelles librairies secondaires (lib etant le nom de la ou des libraires). Forms contien les classes fenetres (JFame) et units les autres classes. On peut decouper differements (IDE, metier, etc ...) et donner d'autres noms, apres c'est la facon dont on organise son projet.
    - META-INF dans "bin" contient le fichier manifest qui permet l'exectution auto de l'application.

    dans le repetoire "monappli" principal, j'y glisse le fichier bat suivant :
    @ECHO OFF

    CLS

    DEL out\monappli.jar
    DEL /S *.class


    ECHO.
    ECHO ******* COMPILATION *******
    ECHO.

    rem > : redirection sortie standard
    rem 2> : redirection sortie erreur

    cd src
    (javac -d ..\bin monappli/Main.java) 2> ..\out\log.txt
    cd ..

    more out\log.txt

    for /f %%i in ('find /c /v "" ^< out\log.txt') do set /a nbligne = %%i

    if %nbligne% NEQ 0 goto END

    ECHO.
    ECHO ******** EXECUTION ********
    ECHO.

    cd bin\
    jar cvfm ..\out\monappli.jar META-INF/MANIFEST.MF monappli/*.*
    cd ..

    out\monappli.jar
    explication :
    DEL out\monappli.jar
    DEL /S *.class
    suppression des fichiers compilé : executable jar + tous les fichiers class dans tous les reperotoires (option /S)

    (javac -d ..\bin monappli/Main.java) 2> ..\out\log.txt
    compilation de l'applciation :
    - "-d ..\bin" defini le repertoire de destination des fichiers class
    - "monappli/Main.java" est la commande de compilation de la classe principale, appelé Main chez moi.
    - "2>" redirige la sortie "erreur" dans un fichier pour recuperer les erreurs dans un fichier log (utile plus tard)

    more out\log.txt
    affiche le fichier log pour voir quand meme les erreurs de compilation

    for /f %%i in ('find /c /v "" ^< out\log.txt') do set /a nbligne = %%i
    if %nbligne% NEQ 0 goto END
    regarde dans le fichier log, compte le nombre de lignes qui permet de verifier si il est vide ou non. Si non vide alors erreurs de compil, donc ne pas executer l'applciation.

    jar cvfm ..\out\monappli.jar META-INF/MANIFEST.MF monappli/*.*
    [...]
    out\monappli.jar[/CODE]
    compilation du fichier JAR et execution automatique.
    - "cvfm" : options de compilation, dont inclusion du manivest, afficher les etapes, etc ... cf aide de jar.
    - "..\out\monappli.jar" : fichier jar de destination
    - "META-INF/MANIFEST.MF" fichier manifest rendant le jar executable.
    - "monappli/*.*" : inclure tous les fichiers et repertoires (Attention ! je me suis positionné dans "bin" juste avant !)

    Remarque : pour faciliter les comandes, je me deplace dans les repertoires au cours du script. bien surveiller les apples a "cd" pour reconstituer les chemins si on n'utilise pas le script complet.


    Pour info, voici le manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Manifest-Version: 1.0
    Created-By: 1.4.1_01 (Sun Microsystems Inc.)
    Main-Class: monappli.Main
    Class-Path: .
    note :
    Pour gerer les fichiers java dans plusieurs sous repertoire il faut :
    - declarer : "package monappli.forms" par exemple dans les unites de "forms"
    - declarer "import monappli.forms.MainForm" dans les fichiers ayant besoin de ces classes ...

    Voila
    Pour toutes infos supplementaire, n'hesite pas

  5. #5
    Membre expérimenté Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Par défaut
    Super post Clorish

    Personnellement je sais très bien quand même faire le jar par la console. Modifier le manifest à la main après l'avoir fait dans eclipse, ca m'arrive aussi, c'est pas pour le moins que j'ai oublié les bases. Après c'est plus professionnel d'utiliser des outils clés en main je trouve.
    Alors je dit vive les softs de haut niveau NA !

    (troll off dsl )

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    j'ai rien contre les IDE "clef en main", bien au contraire
    C'est meme tres bien et propose tellement de chose pour faciliter le codage ...
    Par contre, quand on demarre je conseille toujours de se frapper le code "a la mimine" pour comprendre tous les rouages.

    Un exemple type : Dreamwever permet en 2 click de faire des pages web mais savoir passer par le code source est un sacre plus.
    Je preconise donc d'apprendre d'abort le codage html via notepad et apres accelerer et se simplifer le dev sous dreamweaver

    D'ailleur depuis 2 jours que j'ai commencé a me remettre au java, j'ai appris a faire un jar executable, un manifest, une compilation avec changement de repertoire, des sous packages, etc .... !

    D'ailleur c'est le cas ici a demarrer sous eclipse, on ne sais plus "compiler un paquet a la main" :p

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 265
    Par défaut
    Je vous remericie tous pour vos contributions et un grand merci ou tutorial de
    Clorish dont je rejoins tout a fait le point de vue concernant les IDE. Comme je le disais plus haut, les Ide nous apprennent a opitmiser les programations et divers developpements, mais gros problemes. C'est qu'une fois qu'on est sorti du context de deveppoement habituel -tel un espece de cocoon-, on est completement perdu. J'ai ete envoye chez des clients qui n'avaient pas XP mais Linux, un autre tout simplement unix. Dans le meilleur des cas c'etait NT4 pour une grande banque assez bien connue.
    Bien entendu les eclipse et autres JBuilder, NetBean etc... faut oublier, a peine un jdk et coder.
    J'etais complementement largue.
    Je vais quand meme regarder ce qu'a fait Clorish.

    Cordialement

  8. #8
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Je precise juste que pour moi les IDE doient alleger un systeme de codage maitrisé, et non pas faciliter l'apprentissage d'un langage en s'occupant des affaire courrantes du developpeur.
    Sinon, vu qu'on reviens rarement aux bases, on passe a cote de pleins de choses.

    Je me suis toujours considere comme privilegié, car j'ai appris l'informatique a l'epoque de MS-DOS, ce qui m'a apporte une connaissance sur les bases du systeme XP que beacoup n'on pas.
    SAvoir que derriere un "drag and drop" de ficher d'une fenetre de explorer a uen autre, il y a un simple "copy srcFile destfile" ca aide pas mal ...

    J'ai remarqué aussi la que la disparition des repertoires "." et ".." de l'arboressence windows a egalement affaiblit les connaissances des nouveaux utilisateur. Ils ont perdu un bon outils puissant de gestion des chemins, qui etait fondamental sous MS-DOS.

    Simplifier = appauvrir ....

Discussions similaires

  1. Comment faire des etats pour une application web ?
    Par ovh dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 06/07/2021, 03h25
  2. Comment faire un jar des sources ?
    Par gifffftane dans le forum NetBeans
    Réponses: 2
    Dernier message: 11/07/2008, 11h30
  3. [SWT] Comment faire des fenetres internes ??????
    Par sebounator dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 22/04/2004, 01h12
  4. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo