[Java] Equivalent à system() du C

Fermé
Utilisateur anonyme - 20 févr. 2009 à 08:41
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 20 févr. 2009 à 13:22
Bonjour,

Je recherche une instruction en Java qui aurait le même effet que la commande System() du C.
En résumé, j'aimerai exécuter des commandes DOS ou UNIX en Java.

Merci d'avance
A voir également:

3 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
20 févr. 2009 à 12:10
Bonjour,
Jette un oeil à la classe Runtime, et devrait répondre à tes attentes.

Cordialement,
0
Utilisateur anonyme
20 févr. 2009 à 12:17
J'ai déjà regardé et j'ai tenté un:

Runtime.getRuntime().exec("ipconfig");

mais la console ne s'ouvre pas...
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
20 févr. 2009 à 13:22
Oui, ça lance le process, mais ça ne lance pas la console. Pour afficher les informations dans le flux de sortie, il faut faire une redirection du flux d'entrée du process créé :
public class Launcher {

	public static void main(String[] args) {
		try {
			final Process p = Runtime.getRuntime().exec("ipconfig");
			new Thread() {
				public void run() {
					try {
						BufferedReader reader = new BufferedReader(
								new InputStreamReader(p.getInputStream()));
						String line = null;
						try {
							while ((line = reader.readLine()) != null) {
								System.out.println(line);
							}
						} finally {
							reader.close();
						}
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}.start();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

Je n'ai redirigé que le flux de sortie standard, pas le flux d'erreur.

Je te conseille d'ailleurs de lire l'article suivant (surtout le V) : https://ydisanto.developpez.com/tutoriels/java/runtime-exec/ qui explique pourquoi la console ne s'ouvre pas.

Cordialement,
0