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 :

Lancer un .jar avec un .bat?


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 169
    Par défaut Lancer un .jar avec un .bat?
    Bonjour,

    Voila j'ai mon application que je souhaiterais pouvoir déployer avec un .jar. Actuellement, mon appli se lance par l'intermédiaire de 2 .bat: Un lançant la classe principale de l'appli tout en appelant le second qui fixe mon classpath

    De ce fait, j'aimerais savoir s'il était possible que je mette toutes les classes de mon appli dans un .jar et que je garde ces .bat pour lancer cette archive?

    Merci pour votre aide!

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 169
    Par défaut
    Heu oui je suis quand meme aller voir la FAQ avant mais justement je dois être idiot, je ne trouve pas la réponse à ma question...

    Parce que dans la FAQ les 2 choses sont distinguées: le lancement par batch et la création d'un JAR qui lui-même est executable...Dans mon cas je veux absolument garder mes .bat et si possible déployer mon appli facilement.

    Désolé il y a surement quelque chose qui m'échappe... Merci!

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kobe
    Désolé il y a surement quelque chose qui m'échappe... Merci!
    Ben moi aussi : si tu as déjà fait un jar quel est ton problème ???

    a++

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je suppose que le problème est dans l'utilisation d'une lib sous forme de jar qu'il aimerait inclure à son jar... et que je sache, ce n'est pas possible...
    Il faut que la lib.jar soit séparée, et la référencer par le fichier manifest
    Main-Class: package.Main
    Class-Path: /chemin/lib.jar
    Ensuite, c'est le classique java -jar nomDuJar.jar

    Par contre, si on peut mettre un jar dans un jar (sans repackager), ça m'intéresse...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 169
    Par défaut
    Et bien j'ai essayé de faire un JAR oui mais ça ne fonctionne pas forcément, puisque j'ai besoin de mes .bat, avec le premier qui prend en argument 2 fichiers de config a fournir pour la classe principale (oui j'avais oublié de le préciser!) Donc puisque passer des arguments à un .jar est impossible, comment faire autrement? J'espère que c'est plus clair! :-)

  7. #7
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par OButterlin
    Il faut que la lib.jar soit séparée, et la référencer par le fichier manifest
    Main-Class: package.Main
    Class-Path: /chemin/lib.jar
    Ensuite, c'est le classique java -jar nomDuJar.jar
    Ben, c'est ce qui est indiqué dans le lien que j'ai donné...

    Citation Envoyé par OButterlin
    Par contre, si on peut mettre un jar dans un jar (sans repackager), ça m'intéresse...
    OneJar permet cela, mais il utilise un ClassLoader spécifique qui peut poser problème dans certain cas...


    Citation Envoyé par kobe
    Donc puisque passer des arguments à un .jar est impossible, comment faire autrement? J'espère que c'est plus clair! :-)
    Il est tout à fait possible de passer des arguments à un jar !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar Application.jar arg1 arg2 arg3 ...
    a++

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 169
    Par défaut
    Ok donc selon toi, je crée mon jar avec mon manifest qui indique:

    -ma classe main
    -mon classpath

    et ensuite avec un:

    java -jar monJar.jar config1.cfg config2.cfg

    Et ça peut (doit) fonctionner?

  9. #9
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par kobe
    Et ça peut (doit) fonctionner?
    oui!

    (Certainement une des réponses les plus courtes que j'ai écrites)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par adiGuba
    Ben, c'est ce qui est indiqué dans le lien que j'ai donné...
    Désolé, je répondais au plus récent et je n'avais pas fait attention au lien dans le précédent (il est vrai qu'avec certaine signature + les images...)

    Citation Envoyé par adiGuba
    OneJar permet cela, mais il utilise un ClassLoader spécifique qui peut poser problème dans certain cas...
    Je regarderai ça, merci pour le renseignement...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Pour l'inclusion d'un jar dans un jar, il y a le plugin FatJar pour Eclipse qui fait cela.

    Par contre, je ne sais pas comment ce plugin fonctionne, ni si il a besoin d'un classLoader spécifique (peut-être est-ce simplement une intégration dans Eclipse de OneJar dont parle adiguba...)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  12. #12
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par CyberChouan
    (peut-être est-ce simplement une intégration dans Eclipse de OneJar dont parle adiguba...)
    Non il s'agit bien de 2 solutions distinctes (même s'il me semble que le plugin pour eclipse intègre les deux solution) :

    • FatJar décompresse tous les jar et regroupe leurs fichiers manifests en un seul, afin de générer un unique jar qui comporte directement toutes les classes et ressources. Attention toutefois car il me semble que cela peut poser des problème légal (les librairies sont en quelques sortes modifié).
    • OneJar utilise une vrai arborescence au sein du jar, avec en particulier un répertoire lib/ qui comporte les autres jar (a l'intérieur du jar principale), et il utilise un ClassLoader spécifique pour les charger.



    Mais le fait d'utiliser plusieurs jar n'est pas problématique (surtout si on utilise un installeur).


    Sinon pour info Java 7 devrait proposer un format de remplacement pour les JAR le Java Module System, qui devrait permettre bien plus de chose...

    a++

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 169
    Par défaut
    Ok ça fonctionne presque grâce à vous par contre il est vrai que j'utilise plusieurs autres .jar dans mon appli (et qui figure donc dans mon classpath) et que pour distribuer l'appli, il vaut mieux qu'elles soient intégrées ou laissées comme actuellement dans un dossier à coté (pareil pour les dossiers dans mon classpath avec mes fichiers de config dedans...)?

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Par défaut
    Mon application est déployée avec les jar non inclus, me permettant de versionner correctement sans avoir à relivrer la totalité. Et mon ".bat" est purement un racourci windows (mon systeme vous l'aurez compris est windows )

Discussions similaires

  1. Lancer un .jar avec paramètre via un .bat
    Par Silen dans le forum Général Java
    Réponses: 9
    Dernier message: 25/02/2015, 09h51
  2. Lancer une transformation avec Pan.bat depuis php
    Par momad321 dans le forum Pentaho
    Réponses: 0
    Dernier message: 18/12/2010, 19h11
  3. Lancer .jar avec un .bat pour IBM DB2
    Par error dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 17/04/2009, 13h50
  4. Est-ce-que on peut lancer un .jar avec Runtime.
    Par ala1986 dans le forum Débuter
    Réponses: 1
    Dernier message: 24/01/2009, 12h02
  5. lancer un jar avec Eclipse
    Par mj.air dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 05/10/2006, 16h55

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