Batch file à lancer avec Java -> Pb de path

Résolu
Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 - 6 mai 2010 à 10:47
Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 - 11 mai 2010 à 15:41
Bonjour à tous,
D'abord, désolé de ressasser ce vieux sujet qu'est l'exécution du batch via Java, mais malgré toutes mes recherches, je n'ai pas trouvé de réponse précise à la question suivante :
Je veux donc simplement lancer un batch à partir de java, donc via la commande Runtime.getRuntime.exec("cmd /c start \fichier.bat")

Une première question d'abord : le fait de mettre une String, plutôt qu'un tableau de Strings (String toto[]={"cmd","/c","stat" etc.}) change-t-il quelque chose?

Sinon, le problème vient du chemin de mon fichier : De ce que j'ai pu lire, start implique d'utiliser des chemins sans espace, soit de remplacer les espaces par <6 lettres>~1.
Le problème, c'est que j'ai des chemins très longs, avec des espaces, et parfois, les 6 premières lettres sont identiques pour deux dossiers, et Java plante sur l'exécution du batch, car ne le retrouve pas.
Auriez vous une idée pour exéctuer ces batch proprement, sans avoir de contrainte de chemin?

Merci beaucoup

@+. Hermios

2 réponses

Hermios Messages postés 264 Date d'inscription dimanche 14 avril 2013 Statut Membre Dernière intervention 23 mai 2014 2
11 mai 2010 à 15:41
Bon, ben en fait, en virant tout le trop plein (cmd, /C, start), et en rajoutant des guillements autour du path du fichier batch, ca marche. Merci quand même de ton aide didoux95 (Désolé, je ne peux accepter ta réponse, elle n'est malheureusement pas pertinente, le but étant précisément de faire fonctionner les batch quelques soient les chemins relatifs et absolus, et j'utilise Windows!)

@+. Hermios
3
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
8 mai 2010 à 18:51
Bonjour,

Pour répondre à ta deuxième question, tu peux mettre les batch dans un même répertoire (ou non, tu les agences comme tu le souhaites) près de ton projet. L'avantage c'est que tu peux faire en sorte que ces répertoires ne comportent aucun espace.. Mais c'est à condition que tu n'aie pas de contrainte au niveau de ton cahier des charges..

Note : Sur Unix les espaces sont précédés d'un "". Une solution possible c'est de coder tes espaces, mais le problème c'est plus la manière dont ils sont interprétés ; un espace correspond soit à une nouvelle commande, un nouveau paramètre, etc.
0
Rejoignez-nous