Comment lancer une commande systeme a partir d'un simple code java

Soyez le premier à donner votre avis sur cette source.

Snippet vu 88 464 fois - Téléchargée 29 fois

Contenu du snippet

prend une chaine de caractere et l'execute
NB : le code ne marche pas directement il faut initialiser 'cmd' par un commande
NB : Ce code + astuces je les ai eu du site java.sun.com mais je ne retrouve pas le lien. j'ai fait une sorte de traduction :)

Source / Exemple :


import java.io.*;
public class Exec {	
	public static void main(String[] args) {
                String cmd;
                // Win 95/98/ : pour lancer un .bat
                // cmd = "command.com /c c:\\fichier.bat";
                
                // Win NT(XP...) : pour lancer un .bat
                // cmd = "cmd /c c:\\fichier.bat";

                // Win 95/98/NT : pour lancer un .exe
                // cmd = "command.com /c c:\\windows\\notepad.exe";

                // Win 95/98/NT : pour lancer une commande dos
                // cmd = "cmd /c copy src.txt dest.txt";

                // UNIX : pour lancer un script en precisant le shell (sh,bash)
                // cmd = "/usr/bin/sh script.sh";

                // UNIX : pour lancer script
                // cmd = "/path_complet/tonscript";

                // EXEMPLES .EXE : NetMeeting 
                   cmd = "C:\\Program Files\\NetMeeting\\conf.exe";
                 // ainsi on peut lancer des programme tout a fait autonome 
                 // on peut soit faire p.waitfor() ou pas les deux cas fonctionnent correctement
                 // je suppose aussi que c'est tout a fait vrai pour le cas d'UNIX (je ne l'ai pas tester
                
		try {
			Runtime r = Runtime.getRuntime();
                        Process p = r.exec(cmd);
                        p.waitFor();//si l'application doit attendre a ce que ce process fini
		}catch(Exception e) {
			System.out.println("erreur d'execution " + cmd + e.toString());
                }
	}
}

A voir également

Ajouter un commentaire

Commentaires

nobble
Messages postés
2
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
9 juin 2005
-
Cette application fonctionne bien mais après utilisation avec Windows XP pour lancer un .exe, je recommande dans ce cas d'utiliser "cmd" et non "command.com" comme ce qui est affiché dans l'article. "command.com" transmet le chemin passé en majuscule, ce qui m'a posé quelques problèmes alors que "cmd" ne modifie pas les majuscules et les minuscules.
cs_larsson
Messages postés
41
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
8 juin 2007
-
tu as tout a fait raison, j'ai oublier de differencier le cas 95/98 avec NT/(bien sur toute la famille NT).
désolé ;)
cs_AbriBus
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5 -
ca c'est cooooooooooooooooooooollll !!
Merci
chour03
Messages postés
26
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
31 décembre 2008
-
Sympa ton bout de code !

Par contre saurais-tu s'iol estpossible de rediriger la sortie standard vers une variable ?
Je m'explique : Si tu lances la commande ps sous unix (ou tasklist sous windows), tu fais comment pour récupérer le résultat ?
Merci !
cs_AbriBus
Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
5 -
avec le command classique de winnt ou 2000 ou XP il faut ecrire la commande de la sorte:
C:\>[nomDeLaCommande] [parametresDeLaCommande] > [fichierDeDestination]
ca c'est pour creer/ecraser le fichier qui contiendra ce que t'aurait affiché la fenetre (TEXT ONLY !!)
sinon, tu peux egalement décider de concatener ce que t'affichera la sortie de l'execution de ta commande a un fichier deja existant (sans ecraser donc le resultat precedant mais en le mettant a la suite) auquel cas tu utilisera la ligne de commande suivante:
C:\>[nomDeLaCommande] [parametresDeLaCommande] >> [fichierDeDestination]

Voila... pour les autre OS desolé je connais pas.
j'espere que c'etait bien le sens de ta question et que ca pourra t'etre utile.
Bon courrage

AbriBus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.