Accueil > > > INVITE DE COMMANDES DOS
INVITE DE COMMANDES DOS
Information sur la source
Description
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;
}
}
Fichier Zip
Sources du même auteur
Sources de la même categorie
Commentaires et avis
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 à savoir en quoi exécuter une commande shell de la manière suivante serait ou non recommandable ://Cr&
problème avec la fonction Runtime.getRuntime().exec() [ par Waldo2188 ]
Bonjour, Après avoir cherché assidument (J'ai coupé les bahobabs qui habitait mes mains depuis longtemps), j'ai un problème avec
process + runtime + exec [ par HFanny ]
Bonjour à tous,Après des recherches infructueuses sur la façon d'exécuter une commande (Dos ou Unix) depuis du code Java en ré
Executer une commande linux depuis java [ par nicola2s ]
Salut les gars, je voudrais executer une commande linux, depuis un prog java: j'ai utilisé 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é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 à tous j'essaie d'ouvrir un fichier externe avec le code suivant, mais le programme sort le catch directement... je comprends pas !! pou
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : BONJOUR ^_^RE : BONJOUR ^_^ par ORabab
Cliquez pour lire la suite par ORabab
Logiciels
974 Application Server (12.2.4.0)974 APPLICATION SERVER (12.2.4.0)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP mySongBook Player (1.0.0)MYSONGBOOK PLAYER (1.0.0)mySongBook Player est un logiciel gratuit permettant l'accès à une archive de tablatures/partitio... Cliquez pour télécharger mySongBook Player
|