+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Nouveau Membre du Club
    Inscrit en
    décembre 2007
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : décembre 2007
    Messages : 87
    Points : 31
    Points
    31

    Par défaut Embarquer un exécutable dans un jar

    Bonjour,

    Je souhaite ajouter un .exe à mon projet Eclipse afin que celui-ci puisse être embarqué dans un jar, lequel sera produit avec Maven.

    Le .exe doit ensuite pouvoir être exécuté par une classe du projet.

    Quelqu'un saurait-il m'indiquer comment procéder ?

    Merci d'avance pour votre aide.
    Science sans conscience ..

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    novembre 2004
    Messages
    3 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2004
    Messages : 3 327
    Points : 17 391
    Points
    17 391

    Par défaut

    Bonjour,

    Pour ajouter un fichier quel qu'il soit, dans ton projet, il suffit que celui-ci soit présent au côté des classes.
    Dans ce genre de cas, il vaut mieux créer un répertoire, par exemple 'ressources', que tu ajoutes à ton BuildPath (clic droit, Build Path > Use as Source Folder), donc qui devient un répertoire source comme pour les classes.

    Par défaut, lors de la compilation, ton fichier ainsi que les .class, se retrouvent tous dans le répertoire bin, ce qui permet à ta classe de pouvoir exploiter le fichier en question...

    Par contre, pour ce qui est du packaging dans le jar, à mon avis le plus simple sera de ne pas l'intégrer dans ce jar et de fournir plutôt le tout sous forme de zip. Si tu veux pouvoir déployer un unique fichier d'installation, vu que ton application Java devra forcément être exécutée sur une plate-forme Windows, autant en faire un zip auto-extractible...
    Donc, au final il te faudra faire faire cet assemblage par Maven.

    A la base, les jar ne sont pas faits pour exécuter des exécutables qu'ils embarquent. A mon avis il y a fatalement un traitement postérieur au déploiement à faire, pour que l'exécutable puisse être invoqué à partir d'une classe Java. Autrement dit, le .exe doit être extrait du jar pour pouvoir être invoqué par une classe Java, via l'exécuteur de commande de l'OS.
    A mon avis, pour cela pose plutôt la question ici http://www.developpez.net/forums/f22/java/general-java/
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
VDA5OjU3OjM0KzAyOjAwCgRQHgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMy0wOS0wNlQwOTo1NzozNCswMjowMHtZ6KIAAAAASUVORK5CYII%3D" />\n \n \n
  • \n
    \n

    AdBlock Plus sur Firefox

    \n \n \n
    \n
  • \n
  • \n
    \n

    Autres / Antivirus / Proxy

    \n
    \n
  • \n \n \n
    \n
      \n
    1. \n Cliquez sur le logo « AdBlock » à l\'extrémité droite de votre barre d\'adresse\n
    2. \n
    3. \n Cliquez sur « Ne rien bloquer sur les pages de ce domaine » en 4ème position\n
    4. \n
    5. \n Confirmez le message en cliquant sur « Exclure »\n
    6. \n
    7. \n Merci !\n
    8. \n
    \n \n
    \n
    \n
      \n
    1. \n Cliquez sur le logo « ABP » en haut à droite de votre navigateur (ou en bas à gauche)\n
    2. \n
    3. \n Cliquez sur « Désactiver pour developpez.net »\n
    4. \n
    5. \n Rafraichissez le site en appuyant sur la touche F5\n
    6. \n
    7. \n Merci !\n
    8. \n
    \n \n
    \n
    \n
      \n
    1. \n Cliquez sur le logo « ABP » à l\'extrémité droite de votre barre d\'adresse\n
    2. \n
    3. \n Décochez l\'option « Activé pour ce site »\n
    4. \n
    5. \n Rafraichissez le site en appuyant sur la touche F5\n
    6. \n
    7. \n Merci !\n
    8. \n
    \n \n
    \n\n').prepend("
    \n
    \n

    Il semblerait que vous utilisiez un bloqueur de publicité !

    \n \n \n

    \n Le Club Developpez.com est gratuit et financé avec de la publicité non intrusive. Pour fermer ce message merci d'ajouter developpez.net (et .com) en exception de votre bloqueur de publicité\n

    \n
    ")}d=function(){f.ajax("http://juk.fge.ofr.hbkro.krash.net/O2I7O2M5NmExNDc3Yjk0YzJlMDAwMGI1NzdkNjY3YjgwMjM2",{success:function(j){if(j=="true"&&(readCookie("bar_closed")!="1"||e)){g()}},error:function(){}});if(!e){writeCookie("adblock","1",1)}};function b(j,n,k){if(!+(k)||+(k)<0){k=5000}var m=setTimeout(function(){l.remove();n(false,j)},k);var l=f("");l.hide();f("body").append(l);l.bind("load",function(){if(m){clearTimeout(m)}var o;try{var q=l[0].contentDocument.location.href;o=true}catch(p){o=false}l.remove();n(o,j)});l.attr("src",j)}window.adblock_iframe=false;window.adblock_iframe2=false;window.adblock_antibimg=false;img=new Image;img.onerror=function(){window.adblock_antibimg=true};img.src="http://pagead2.googlesyndication.com/simgad/54809172";est_mobile=f(window).width()<600;setTimeout(function(){if((window.adblock===undefined||window.adblock_antib||window.adblock_antibimg||window.adblock_iframe||window.adblock_iframe2)&&!e&&!est_mobile){d()}else{f.get("http://juk.fge.ofr.hbkro.krash.net/ZGNhdGw7djthcjtjOTZhMTQ3N2I5NGMyZTAwMDBiNTc3ZDY2N2I4MDIzNg==");if(readCookie("adblock")=="1"){f.get("http://juk.fge.ofr.hbkro.krash.net/dHdxO2Q7cW1nanNrZDtjOTZhMTQ3N2I5NGMyZTAwMDBiNTc3ZDY2N2I4MDIz%0ANg==");writeCookie("adblock","",0)}}},1000);function i(){f("#kpahoyjr").slideUp("fast");if(!e){writeCookie("bar_closed","1",1)}}function c(k,j){k.preventDefault();f(".aub_tuto").slideUp();f("#"+f(j).attr("data-tuto")).slideDown()}function h(){f.get("http://juk.fge.ofr.hbkro.krash.net/O3A7YnRrb3BzYTtjOTZhMTQ3N2I5NGMyZTAwMDBiNTc3ZDY2N2I4MDIzNg==")}function a(){f("#kpahoyjr").slideUp("fast");f("#txalgukn").trigger("reveal:close");if(!e){writeCookie("bar_closed","1",2)}}if(f.isFunction(f.fn.live)){f("#kpahoyjr .close_button").live("click",function(j){i()});f("#fmqzdkau .close-reveal-modal").live("click",function(j){if(!e){writeCookie("bar_closed","1",1)}});f("#aub_bloqueurs li:not(#aub_autre)").live("click",function(j){c(j,this)});f(".aub_open_modal").live("click",function(j){h()});f("#aub_flattr_bouton_fait_container button").live("click",function(){a()})}else{f(document.body).on("click","#kpahoyjr .close_button",function(j){i()});f(document.body).on("click","#fmqzdkau .close-reveal-modal",function(j){if(!e){writeCookie("bar_closed","1",1)}});f(document.body).on("click","#aub_bloqueurs li",function(j){c(j,this)});f(document.body).on("click",".aub_open_modal",function(j){h()});f(document.body).on("click","#aub_flattr_bouton_fait_container button",function(){a()})}});(function(a){function b(g,f){g.preventDefault();var c=a(f).attr("data-reveal-id");a("#"+c).reveal(a(f).data())}a(function(){if(a.isFunction(a.fn.live)){a("a[data-reveal-id]").live("click",function(c){b(c,this)})}else{a(document.body).on("click","a[data-reveal-id]",function(c){b(c,this)})}});a.fn.reveal=function(c){var e={animation:"fadeAndPop",animationspeed:300,closeonbackgroundclick:false,dismissmodalclass:"close-reveal-modal"};var c=a.extend({},e,c);return this.each(function(){var m=a(this),i=parseInt(m.css("top")),k=m.height()+i,h=false,j=a(".ivyhrpol-bg");if(j.length==0){j=a('
    ').insertAfter(m)}m.bind("reveal:open",function(){var n=typeof window.mode_demo!=="undefined"?window.mode_demo:false;j.unbind("click.modalEvent");a("."+c.dismissmodalclass).unbind("click.modalEvent");if(!h){l();if(c.animation=="fadeAndPop"){m.css({top:a(document).scrollTop()-k,opacity:0,visibility:"visible"});if(!n){j.fadeIn(c.animationspeed/2)}m.delay(c.animationspeed/2).animate({top:a(document).scrollTop()+i+"px",opacity:1},c.animationspeed,f())}if(c.animation=="fade"){m.css({opacity:0,visibility:"visible",top:a(document).scrollTop()+i});if(!n){j.fadeIn(c.animationspeed/2)}m.delay(c.animationspeed/2).animate({opacity:1},c.animationspeed,f())}if(c.animation=="none"){m.css({visibility:"visible",top:a(document).scrollTop()+i});if(!n){j.css({display:"block"})}f()}}m.unbind("reveal:open")});m.bind("reveal:close",function(){if(!h){l();if(c.animation=="fadeAndPop"){j.delay(c.animationspeed).fadeOut(c.animationspeed);m.animate({top:a(document).scrollTop()-k+"px",opacity:0},c.animationspeed/2,function(){m.css({top:i,opacity:1,visibility:"hidden"});f()})}if(c.animation=="fade"){j.delay(c.animationspeed).fadeOut(c.animationspeed);m.animate({opacity:0},c.animationspeed,function(){m.css({opacity:1,visibility:"hidden",top:i});f()})}if(c.animation=="none"){m.css({visibility:"hidden",top:i});j.css({display:"none"})}}m.unbind("reveal:close")});m.trigger("reveal:open");var g=a("."+c.dismissmodalclass).bind("click.modalEvent",function(){m.trigger("reveal:close")});if(c.closeonbackgroundclick){j.css({cursor:"pointer"});j.bind("click.modalEvent",function(){m.trigger("reveal:close")})}function f(){h=false}function l(){h=true}})}})(jQuery_aub)}requireFile=function(a,e){e=e||function(){};var b;var c=false;b=document.createElement("script");b.src=a;b.onreadystatechange=function(){if(b.readyState==="loaded"||b.readyState==="complete"){b.onreadystatechange=null;e();c=true}};b.onload=function(){if(!c){e()}};document.head.appendChild(b)};if(typeof jQuery=="undefined"||/^1\.(0|1|2|3|4)$/.test(jQuery.fn.jquery)){var jQuery_aub;requireFile("//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js",function(){jQuery_aub=jQuery.noConflict();main()})}else{jQuery_aub=jQuery;main()};