En effet ça ne peut pas marcher.
Tu es tombé dans tous les pièges possibles.
Remarque ce n'est pas de ta faute, avec ce qu'ils disent dans la Javadoc, tout le monde tombe dedans la première fois.
Quel dommage que tu n'ais pas lu Programmez! 82 ;)
Et tu ne m'as pas répondu, fais tu partie de nos lecteurs :?:
Bon lecteur ou pas, je vais t'aider :)
C'est bien trop long de tout expliquer.
Alors voici un bout de code
package programmez.fred.processesdemo;
import java.util.*;
import java.io.*;
class StdHandler extends Thread {
InputStream is;
String type;
StdHandler(InputStream is, String type) {
this.is = is;
this.type = type;
}
public void run() {
try {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String ligne=null;
while ( (ligne = br.readLine()) != null)
System.out.println(type + "> " + ligne);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
public class Demo4 {
public static void main(String[] args) throws Throwable {
if (args.length <= 0) {
System.err.println("Donnez une commande a lancer");
System.exit(-1);
}
System.out.printf("\nSortie de la commande %s: \n",
Arrays.toString(args));
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(args);
StdHandler stderr = new
StdHandler(process.getErrorStream(), "stderr");
StdHandler stdout = new
StdHandler(process.getInputStream(), "stdout");
stderr.start();
stdout.start();
int status = process.waitFor();
System.out.println("Valeur de retour du sous proc: " + status);
}
}
Pour essayer tape:
java -cp . programmez.fred.processesdemo.Demo3 cmd /c dir c:\windows
ou pourquoi pas ;)
java -cp . programmez.fred.processesdemo.Demo3 cmd /c copy test.txt C:\dossier
:)
remarque bien le cmd /c
Mais ça je pense que tu l'as déjà compris.
Pour le reste regarde bien le code et tu comprendras aussi :)
Remarque bien aussi le process.waitFor();
Ah là là, 50 lignes de codes pour lancer un exécutable... y pas à dire c'est cool Java :twisted:
Au fait, n'essaie même pas de raccourcir le code, sinon ça va foirer quelque part. Le code ci-dessus est *minimum* pour une exécution sûre... sans blague. :lol:
En effet ça ne peut pas marcher.
Tu es tombé dans tous les pièges possibles.
Remarque ce n'est pas de ta faute, avec ce qu'ils disent dans la Javadoc, tout le monde tombe dedans la première fois.
Quel dommage que tu n'ais pas lu Programmez! 82 ;)
Et tu ne m'as pas répondu, fais tu partie de nos lecteurs :?:
Bon lecteur ou pas, je vais t'aider :)
C'est bien trop long de tout expliquer.
Alors voici un bout de code
Pour essayer tape:
ou pourquoi pas ;)
:)
remarque bien le cmd /c
Mais ça je pense que tu l'as déjà compris.
Pour le reste regarde bien le code et tu comprendras aussi :)
Remarque bien aussi le process.waitFor();
Ah là là, 50 lignes de codes pour lancer un exécutable... y pas à dire c'est cool Java :twisted:
Au fait, n'essaie même pas de raccourcir le code, sinon ça va foirer quelque part. Le code ci-dessus est *minimum* pour une exécution sûre... sans blague. :lol: