Bonjour à tous,
Après maintes recherches, je bloque sur le passage de paramètres lors du lancement d'un script (.cmd / .bat) via java.
Durant mes recherches, je suis tombé sur deux methodes pour lancer un script.
1ère methode -> Utilisation de Runtime
1 2 3
| Runtime runtime = Runtime.getRuntime();
String[] command = {"cmd", "/c", "Start", "C:\\test.bat "};
Process p = runtime.exec(command); |
2ème methode -> utilisation de Desktop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| if (Desktop.isDesktopSupported()) {
String nomFichier = ".\\Interface\\test.cmd " + "/" + usernameOC; //+ " " + "//" + sequenceToLaunch; // Le nom du fichier
File fichier = new File(nomFichier); // Le fichier
Desktop desk = Desktop.getDesktop(); // Le lanceur
try {
desk.open(fichier); // Lancer le fichier
} catch (IOException ex) {
Logger.getLogger(Interface_Panel.class.getName()).log(Level.SEVERE, null, ex);
}
}
} catch (Exception e) {
Logger.getLogger(Interface_Panel.class.getName()).log(Level.SEVERE, null, e);
} |
Jusque là tout va bien.
Seulement, mes scripts doivent prendre deux parametres en entrée, et je ne sais pas comment les passer en utilisant l'une de ces deux methodes...
Avec chacune des methodes précédentes, j'ai tenté de les passer comme si je lancais le script via l'invite de commande, mais sans succès
String[] command = {"cmd", "/c", "Start", "C:\\test.bat param1 param2"};
Puis j'ai essayé avec le / (lu sur un forum lors de mes recherches), toujours sans succès :
String[] command = {"cmd", "/c", "Start", "C:\\test.bat " + "/" + param1};
Savez-vous s'il est possible d'utiliser l'une de ces 2 methodes pour lancer le script avec passage de parametre ? ou bien s'il existe une autre solution ?
Merci d'avance.
Partager