89 votes

Programmation Java: appeler un exe à partir de Java et passer des paramètres

Je suis en train de trouver un mécanisme pour appeler un exe à partir de Java et lui transmettre des paramètres spécifiques. Comment puis-je faire?

 Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}
 

Le code précédent fonctionne. Mais je ne suis pas capable de transmettre des paramètres . MyExe.exe accepte les paramètres. Un autre problème est lorsque PathToExe a des espaces vides. ProcessBuilder semble ne pas fonctionner. Par exemple:

 C:\\User\\My applications\\MyExe.exe
 

Je vous remercie.

123voto

Prince John Wesley Points 22418

Passez vos arguments dans le constructeur même.

 Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
 

9voto

T.J. Crowder Points 285826

Vous êtes sur la bonne voie. Les deux constructeurs acceptent des arguments, ou vous pouvez spécifier post-construction avec ProcessBuilder#command(java.util.List) et ProcessBuilder#command(String...).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X