[Java] Equivalent à system() du C

Utilisateur anonyme -  
Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   329
 
Bonjour,
Jette un oeil à la classe Runtime, et devrait répondre à tes attentes.

Cordialement,
0
Utilisateur anonyme
 
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   Statut Contributeur Dernière intervention   329
 
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