2012-12-21 18 views
28

Ho provato a fare un'applicazione che chiama un programma esterno che devo passare due parametri. Non dà errori. Il programma.exe, scritto in C++, scatta una foto e modifica il contenuto del file txt. Il programma Java viene eseguito, ma non fa nullaEsegui programma esterno in java

Qui è il mio codice di esempio

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); 
+6

Qual è il problema lem esattamente, hai un messaggio di errore che puoi aggiungere alla domanda? Grazie. – Jonathan

+0

hai detto, vuoi passare due parametri, ma qui stai mostrando 3 parametri – Ravi

+0

se * non * viene eseguito, qual è l'errore? cosa fa il tuo programma.exe? – vels4j

risposta

47

preso in prestito questo shamely da here

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); 
} 

Maggiori informazioni here

Altre questioni su come passare i comandi here e here

+1

il mio problema è passare i parametri alla risposta aggiornata di program.exe – sqtd

+0

, ti aiuta? – Steven

+0

Ho provato questo, ma fa la stessa cosa – sqtd