web-dev-qa-db-fra.com

Exécuter un programme externe dans java

J'ai essayé de faire une application qui appelle un programme externe que je dois transmettre deux paramètres. Cela ne donne aucune erreur. Le programme.exe, écrit en c ++, prend une photo et modifie le contenu du fichier txt. Le programme Java s'exécute mais il ne fait rien

Voici mon exemple de code

    String[] params = new String [3];
    params[0] = "C:\\Users\\user\\Desktop\\program.exe";
    params[1] = "C:\\Users\\user\\Desktop\\images.jpg";
    params[2] = "C:\\Users\\user\\Desktop\\images2.txt";
    Runtime.getRuntime().exec(params);
34
sqtd

emprunté cette honteusement de ici

Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").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);
}

Plus d'informations ici

Autres questions sur la manière de passer des commandes ici et ici

60
Steven

Ça n'est pas correct. Voici comment utiliser Runtime.exec(). Vous pouvez aussi essayer son cousin plus moderne, ProcessBuilder :

alternatives Java Runtime.getRuntime (). Exec ()

14
duffymo