Problème d'espace pour lancer un exe

Résolu
Goofyrocks Messages postés 21 Statut Membre -  
el_linwin Messages postés 517 Date d'inscription   Statut Membre -
Bonjour,

J'essaye d'appeler un programme .exe à partir de code java avec des argurments.

String st="C:\\Program Files\\MagicDraw UML\\plugins\\com.nomagic.magicdraw.emfuml2xmi_v2\\exportEMFXMI.exe"+
" project_file="+project.getFileName()+
" destination_dir="+"C:\\test"+
"load_all_modules=true check_time=true ";
Process p = Runtime.getRuntime().exec(st);


Le fait d'avoir des espaces dans le chemin pour lancer mon exe ne pose pas de problème en revanche pour mes arguments comme project file.j'ai cette erreur Project file: "D:\Documents" does not exist!
j'ai vu quelque solutions sur le net comme mettre %20 à la place des espaces ou de mettre des guillemets, mais rien ne fonctionnne.

Je m'en remet à vous

Merci

Goofy
Configuration: Windows XP
Firefox 3.0.1

6 réponses

  1. el_linwin Messages postés 517 Date d'inscription   Statut Membre 90
     
    Bonjour Goofyrocks,

    Euh... si vous obtenez l'erreur: Project file: "D:\Documents" does not exist!, c'est que l'appel à project.getFileName() ne renvoie pas le bon chemin... Oo

    Peut-être vous faudrait-il commencer par vérifier ça. Ou alors, j'ai loupé quelque-chose...

    Cordialement,
    el_linwin
    0
    1. Goofyrocks Messages postés 21 Statut Membre 1
       
      non, project.getFileName() me retourne bien la bonne adresse car si je suis dans un projet dont l'adresse n'a pas d'espace comme par exemple c:\test ça marche. c'est qu'il s'arrête au niveau du premier espace.
      0
  2. Eldar57 Messages postés 50 Date d'inscription   Statut Membre 7
     
    comme tu le fait pour ta chaine st, il te faudrait doubler le slache / dans le chemin Project file ... du moins je pense.
    0
  3. Goofyrocks Messages postés 21 Statut Membre 1
     
    arf bonne idée, j'y ai cru ,mais après des tests project.getFileName() double déjà les slashes. :'(

    Une autre idée =)?
    0
  4. el_linwin Messages postés 517 Date d'inscription   Statut Membre 90
     
    Bonjour Goofyrocks,

    Voici ma petite suggestion:

    String st="C:\\Program Files\\MagicDraw UML\\plugins\\com.nomagic.magicdraw.emfuml2xmi_v2\\exportEMFXMI.exe"+
    " project_file=\""+project.getFileName()+
    "\" destination_dir="+"C:\\test"+
    "load_all_modules=true check_time=true ";
    Process p = Runtime.getRuntime().exec(st);


    Pour résumer, j'ai ajouté le nécessaire pour que le chemin renvoyé par project.getFileName() soit mis entre guillemets. Sinon, la présence d'espaces fait passer "D:\Documents and Settings" (si c'est ce dossier) en "D:\Documents", suivi des paramètres "and" et "Settings".

    Cordialement,
    el_linwin
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Goofyrocks Messages postés 21 Statut Membre 1
     
    Normalement c'est ce qui faudrait faire ou alors faire :
    "D:\\\"Documents and Settings\"\\mBelmontet\\\"Mes documents\"\\doc_herve\\SBT_Transport.mdzip"

    mais nan ça ne marche pas . je dois avoir un souci mais dans le exe.
    0
  7. el_linwin Messages postés 517 Date d'inscription   Statut Membre 90
     
    Bonjour Goofyrocks,

    Si même avec les guillemets, il y a toujours un problème, alors effectivement, votre fichier exe analyse mal la ligne de commande.

    Cordialement,
    el_linwin
    0