Problème d'espace pour lancer un exe

Résolu/Fermé
Goofyrocks Messages postés 20 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 16 octobre 2011 - 30 juil. 2008 à 15:03
el_linwin Messages postés 519 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 16 août 2008 - 31 juil. 2008 à 14:27
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
A voir également:

6 réponses

el_linwin Messages postés 519 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 16 août 2008 90
30 juil. 2008 à 15:09
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
Goofyrocks Messages postés 20 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 16 octobre 2011 1
30 juil. 2008 à 16:05
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
Eldar57 Messages postés 46 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 12 août 2008 7
30 juil. 2008 à 15:09
comme tu le fait pour ta chaine st, il te faudrait doubler le slache / dans le chemin Project file ... du moins je pense.
0
Goofyrocks Messages postés 20 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 16 octobre 2011 1
30 juil. 2008 à 16:07
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
el_linwin Messages postés 519 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 16 août 2008 90
31 juil. 2008 à 11:38
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Goofyrocks Messages postés 20 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 16 octobre 2011 1
31 juil. 2008 à 14:07
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
el_linwin Messages postés 519 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 16 août 2008 90
31 juil. 2008 à 14:27
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