begin process at 2012 05 24 00:54:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Systeme

 > INVITE DE COMMANDES DOS

INVITE DE COMMANDES DOS


 Description

Cliquez pour voir la capture en taille normale
Ce programme permet d'exécuter des commandes en dos.

Les commandes sont écrites dans une zone de texte. Les sorties standard et en erreur sont affichées dans deux zones de textes distinctes.

Attention, cette source ne définis pas un shell il est impossible d'utiliser des variables et la redirection des entrées sorties n'est pas possible non plus. Par ailleurs, il est impossible de changer le répertoire courant (cd ou pushd), il faut toujours utiliser les chemins absolus.

Source

  • package fr.julien.invite.execution;
  • import java.io.BufferedReader;
  • import java.io.IOException;
  • import java.io.InputStream;
  • import java.io.InputStreamReader;
  • import fr.julien.invite.ihm.OutPut;
  • /**
  • * <b>Cette classe définis les fonctions d'exécution de commandes en dos</b>
  • *
  • * <p>
  • * Cette classe est définie par les informations suivantes
  • * <ul>
  • * <li>Une sortie standard</li>
  • * <li>Une sortie en erreur</li>
  • * </ul>
  • * </p>
  • *
  • * <p>
  • * Cette classe dispose également de méthodes permettant d'exécuter
  • * des commandes dos et de erdiriger les flux de sorties
  • * </p>
  • *
  • * @see fr.julien.invite.execution.IExecuteur
  • * @see fr.julien.invite.ihm.OutPut
  • *
  • * @author julien
  • * @version 1.0
  • *
  • */
  • public class ExecuteurDos implements IExecuteur {
  • /**
  • * L'unique instance du singleton
  • */
  • private static final IExecuteur instance = new ExecuteurDos();
  • /**
  • * La sortie standard, l'écran dans lequel seront affichés les
  • * résultats de la commande
  • *
  • * @see fr.julien.invite.ihm.OutPut
  • */
  • private OutPut sortieStandard;
  • /**
  • * La sortie d'erreur, l'écran dans lequel seront affichées les
  • * erreurs générées par la commande
  • *
  • * @see fr.julien.invite.ihm.OutPut
  • */
  • private OutPut sortieErreur;
  • /**
  • * Constructeur privé du singleton
  • */
  • private ExecuteurDos() {
  • super();
  • }
  • /**
  • * Cette procédure permet d'exécuter un ensemble de commandes séparés par des sauts de lignes
  • * @param commande
  • * Les commandes à exécuter
  • */
  • public void executer(String commande){
  • try {
  • Runtime runtime = Runtime.getRuntime();
  • for(String instruction : commande.split("\n")){
  • final Process process = runtime.exec("cmd /c "+instruction);
  • lancerRecuperationSortie(process.getInputStream(), sortieStandard);
  • lancerRecuperationSortie(process.getErrorStream(), sortieErreur);
  • }
  • }
  • catch (IOException e) {
  • e.printStackTrace();
  • }
  • }
  • /**
  • * Cette procédure permet de lancer la récupération des flux dans un thread distinct
  • * @param stream
  • * Le flux à récupérer
  • * @param destination
  • * La destination du flux
  • */
  • private void lancerRecuperationSortie(final InputStream stream, final OutPut destination){
  • new Thread() {
  • public void run() {
  • try {
  • BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
  • String line = "";
  • try {
  • while((line = reader.readLine()) != null) {
  • destination.ajouter(line);
  • }
  • } finally {
  • reader.close();
  • }
  • } catch(IOException ioe) {
  • ioe.printStackTrace();
  • }
  • }
  • }.start();
  • }
  • /**
  • * Accesseur à l'instance de l'exécuteur
  • * @return l'instance d'exécuteurDos
  • */
  • public static IExecuteur getInstance() {
  • return instance;
  • }
  • /**
  • * @param sortieStandard the sortieStandard to set
  • */
  • public void setSortieStandard(OutPut sortieStandard) {
  • this.sortieStandard = sortieStandard;
  • }
  • /**
  • * @param sortieErreur the sortieErreur to set
  • */
  • public void setSortieErreur(OutPut sortieErreur) {
  • this.sortieErreur = sortieErreur;
  • }
  • }
package fr.julien.invite.execution;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import fr.julien.invite.ihm.OutPut;

/**
 * <b>Cette classe définis les fonctions d'exécution de commandes en dos</b>
 * 
 * <p>
 * Cette classe est définie par les informations suivantes
 * <ul>
 * <li>Une sortie standard</li>
 * <li>Une sortie en erreur</li>
 * </ul>
 * </p>
 * 
 * <p>
 * Cette classe dispose également de méthodes permettant d'exécuter
 * des commandes dos et de erdiriger les flux de sorties
 * </p>
 * 
 * @see fr.julien.invite.execution.IExecuteur
 * @see fr.julien.invite.ihm.OutPut
 * 
 * @author julien
 * @version 1.0
 *
 */
public class ExecuteurDos implements IExecuteur {

	/**
	 * L'unique instance du singleton
	 */
	private static final IExecuteur instance = new ExecuteurDos();

	/**
	 * La sortie standard, l'écran dans lequel seront affichés les
	 * résultats de la commande
	 * 
	 * @see fr.julien.invite.ihm.OutPut
	 */
	private OutPut sortieStandard;
	
	/**
	 * La sortie d'erreur, l'écran dans lequel seront affichées les
	 * erreurs générées par la commande
	 * 
	 * @see fr.julien.invite.ihm.OutPut
	 */
	private OutPut sortieErreur;


	/**
	 * Constructeur privé du singleton
	 */
	private ExecuteurDos() {
		super();
	}

	/**
	 * Cette procédure permet d'exécuter un ensemble de commandes séparés par des sauts de lignes
	 * @param commande
	 * 	Les commandes à exécuter
	 */
	public void executer(String commande){
		try {
			Runtime runtime = Runtime.getRuntime();
			for(String instruction : commande.split("\n")){
				final Process process = runtime.exec("cmd /c "+instruction);
				lancerRecuperationSortie(process.getInputStream(), sortieStandard);
				lancerRecuperationSortie(process.getErrorStream(), sortieErreur);
			}
		} 
		catch (IOException e) {
			e.printStackTrace();
		} 
	}
	
	/**
	 * Cette procédure permet de lancer la récupération des flux dans un thread distinct
	 * @param stream
	 * 	Le flux à récupérer
	 * @param destination
	 * 	La destination du flux
	 */
	private void lancerRecuperationSortie(final InputStream stream, final OutPut destination){
		new Thread() {
			public void run() {
				try {
					BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
					String line = "";
					try {
						while((line = reader.readLine()) != null) {
							destination.ajouter(line);
						}
					} finally {
						reader.close();
					}
				} catch(IOException ioe) {
					ioe.printStackTrace();
				}
			}
		}.start();
	}

	/**
	 * Accesseur à l'instance de l'exécuteur
	 * @return l'instance d'exécuteurDos
	 */
	public static IExecuteur getInstance() {
		return instance;
	}

	/**
	 * @param sortieStandard the sortieStandard to set
	 */
	public void setSortieStandard(OutPut sortieStandard) {
		this.sortieStandard = sortieStandard;
	}

	/**
	 * @param sortieErreur the sortieErreur to set
	 */
	public void setSortieErreur(OutPut sortieErreur) {
		this.sortieErreur = sortieErreur;
	}


}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip MÉTHODOLOGIE POUR LES TESTS UNITAIRES
Source avec Zip INTERPRÉTEUR DE PSEUDO CODE
EVALUER UNE EXPRESSION BOOLÉENNE
JCOMBOBOX EN CASCADE
Source avec Zip FENÊTRE BLOQUANTE

 Sources de la même categorie

Source avec Zip JNI: THREAD NATIF & CONTEXTE JAVA par Twinuts
Source avec Zip LIRE ET ÉCRIRE UN FICHIER DÉLIMITÉ par Julien39
Source avec Zip EXEMPLE D'UTILISATION DE LA CLASSE RUNTIME par Julien39
Source avec Zip TASK_KILLER par COUNDOULIBZO
Source avec Zip HYPERTERMINAL EN JAVA par naf87

 Sources en rapport avec celle ci

Source avec Zip EXEMPLE D'UTILISATION DE LA CLASSE RUNTIME par Julien39
Source avec Zip Source avec une capture JARSIGNER : SIGNEZ VOS ARCHIVES EN UN RIEN DE TEMPS ! par gmi19oj19
Source avec Zip Source avec une capture IMPLÉMENTATION D'UN SHELL POUR LA GESTION D'UN SYSTEME D'EXP... par deiz21
Source avec Zip Source avec une capture ADMINISTRATION A DISTANCE par sheorogath
Source avec Zip EXECUTION DE COMMANDE A DISTANCE AVEC SORTIE ECRAN COTE CLIE... par sheorogath

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pb Runtime [ par GroSam ] Salut!PREMIER PROBLEME:Alors voila j'ai un pb avec la commande "run.exec":...Runtime run = Runtime.getRuntime();String cmd=("Sqlplus user/pwd@ c:/toto runtime.exec pour dir impossible [ par math85 ] bonjour,sous windows et eclipse,quand je fait Runtime r = Runtime.getRuntime(); Process processus = r.exec("dir c:");il me fait une IOexception avec u exécuter une commande shell ou pas [ par Vaughn018 ] Bonjour tout le monde,je cherche &#224; savoir en quoi ex&#233;cuter une commande shell de la mani&#232;re suivante serait ou non recommandable ://Cr& problème avec la fonction Runtime.getRuntime().exec() [ par Waldo2188 ] Bonjour, Apr&#232;s avoir cherch&#233; assidument (J'ai coup&#233; les bahobabs qui habitait mes mains depuis longtemps), j'ai un probl&#232;me avec process + runtime + exec [ par HFanny ] Bonjour &#224; tous,Apr&#232;s des recherches infructueuses sur la fa&#231;on d'ex&#233;cuter une commande (Dos ou Unix) depuis du code Java en r&#233 Executer une commande linux depuis java [ par nicola2s ] Salut les gars, je voudrais executer une commande linux, depuis un prog java: j'ai utilis&#233; Runtime et Process. Pour l'exemple g pris echo comme c combiner 2 commande [ par lafolle24320 ] Bonjour, Je souheterais combiner 2 commandes avec exec en java. En fait je voudrai commencer par faire un "exit" puis  p = Runtime.getRuntime().exec(" Runtime.getRuntime.exec() [ par Chatbour ] Salut à tous et à toutes le lien http://java.developpez.com/faq/java/?page=syste commandeDOS [ par perrotju ] j'utilise les classes Runtime et Process pour ex&#233;cuter une commande DOS depuis mon prgm Java (en fait je fais un checkout depuis CVS mais dans l' Ouvrir un fichier externe (Runtime, exec..) [ par olkis ] Bonjour &#224; tous j'essaie d'ouvrir un fichier externe avec le code suivant, mais le programme sort le catch directement... je comprends pas !! pou


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,820 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales