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

Java Discussion :

Jar auto-executable et Jar Librairie


Sujet :

Java

  1. #1
    Membre chevronné
    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
    Points : 2 158
    Points
    2 158
    Par défaut Jar auto-executable et Jar Librairie
    Petite question sur la gestion des JAR :

    J'ai une application console java packagé dans un fichier JAR auto-executable avec procedure "main" dans la classe principale (logique quoi).

    Je souhaiterais developper un front-end graphique pour cette applciation et donc, m'appuyer sur le package JAR de l'application console et creer directement au sein de mon interface graphique une instance de la classe principale de l'applicaition console pour "l'encapsuler".

    A priori je vois pas pourquoi ca passerais pas mais je maitrise mal les applciations JAVA et je ne sais pas si c'est "propre" de faire comme ca ... ou si il vaut mieux passer par un package "librairie" partagé entre la version console et la version graphique ....

    Je sais pas si je me suis bien fait comprendre

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 149
    Points
    149
    Par défaut
    le plus propre est de faire 2 packages
    1 avec l'appli console sans gui
    et l'autre avec l'appli console + gui (swing je suppose ?)

  3. #3
    Membre chevronné
    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
    Points : 2 158
    Points
    2 158
    Par défaut
    Ouais ... en gros ce que tu me propose c'est de "dupliquer" le corps de mon application dans les 2 packages .... c'est une solution en effet, mais je n'aime pas trop effectuer cette redondance.

    En fait, si on regarde bien le package "console", il est composé d'une classe avec methode "main" (point d'entree de mon programme" qui apres analyse des 2 ou 3 parametre cree une instance de la classe de base de mon application qui s'occupe du reste.

    Du cote GUI, c'est pareil, sauf que les parametres ne sont pas issu de la methode main, mais de l'interface.
    J'aimerais donc depuis mon interface, referencer le package console et creer l'instance de la classe de base de mon applciation directement, en court cuicuitant l'appel a la classe contenant la methode "main" ... comme si elle n'existait pas.
    Je vois pas ce qui pourrait gener mais ca me parait un peu etrange et je voudrais pas que le chargement du JAR entraine automatiquement son execution.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux très bien utiliser deux jar différents :

    • Le premier contenant tout ton code métier, ainsi que ta classe principale avec le mode console. Appelons ce jar "MonAppli.jar".
    • Le second jar contiendrait uniquement ton interface graphique et tout se qui s'y rapporte. Par contre au lieu d'appeler le main du jar précédent elle pourrait utiliser directement les classes métiers (ce serait nettement plus propre je pense).

      Pour cela il suffit de référencer le jar précédent via le manifest, qui contiendra quelque chose comme cela :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      Main-Class: tonpackage.TaClasseGUIPrincipale
      Class-Path: MonAppli.jar
      Le fichier MonAppli.jar devra donc être situé dans le même répertoire que ton jar principal.



    a++

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Si ton application console est bien faite, elle est déjà un front-end à ton application. Si tu as moyen de retoucher à l'appli en mode console, il faut remanier un peu l'architecture. Le front-end graphique ne devrait pas poser de problème conceptuel.
    Maintenant, si tu ne peux pas retoucher à l'appli en mode console, ça se complique un peu. Il faut savoir comment sont gérés les flux entrée/sortie pour les saisies utilisateur et les infos envoyées par l'appli. Il n'y a pas de méthode miracle...
    L'appli console peut être mise par défaut dans le package des librairies. Tu peux ensuite ajouter un package pour le mode graphique, qui s'appuit sur les librairies du premier package.

    EDIT : trop lent

  6. #6
    Membre chevronné
    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
    Points : 2 158
    Points
    2 158
    Par défaut
    MErci pour ces infos
    Les 2 applis sont (enfin seront ) de moi mais je me posait la question pour des cas plus generiques.

    Disons que c'est la presence de la classe "Main" du package console qui me perturbais.
    JE viens du delphi ou j'ai l'habitude de manipuler les applis consoles via l'encapsulation de processus ... mais sous java je me suis dit que je pourrais dirrectement attaquer les classes metier.

    Pour preciser j'hai pour habitude de ne rien mettre dans la classe "main" d'une applciation java. Elle ne sert qu'a analyser les eventuels parametres et a instancier la veritable classe principale de l'application.

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Clorish Voir le message
    JE viens du delphi ou j'ai l'habitude de manipuler les applis consoles via l'encapsulation de processus ... mais sous java je me suis dit que je pourrais dirrectement attaquer les classes metier.
    Oui tu peux très bien le faire, et ce sera nettement plus pratique à utiliser...

    Citation Envoyé par Clorish Voir le message
    Pour preciser j'hai pour habitude de ne rien mettre dans la classe "main" d'une applciation java. Elle ne sert qu'a analyser les eventuels parametres et a instancier la veritable classe principale de l'application.
    C'est une très bonne pratique : le main() ne devrait contenir que le stricte minimum

    a++

  8. #8
    Membre chevronné
    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
    Points : 2 158
    Points
    2 158
    Par défaut
    ok merci pour ces conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/03/2010, 13h55
  2. Jar auto executable : Pas de sortie console
    Par Clorish dans le forum Général Java
    Réponses: 3
    Dernier message: 31/03/2008, 12h09
  3. [Maven2]Jar executable avec ses librairies
    Par Shogun dans le forum Maven
    Réponses: 3
    Dernier message: 26/09/2007, 18h57
  4. [Desktop.open()] un JAR qui execute un JAR
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 24/04/2007, 23h38
  5. [Jar]liste ressources d'un jar pendant execution
    Par maxidoove dans le forum Général Java
    Réponses: 4
    Dernier message: 10/05/2004, 18h36

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