Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.fudaa.dodico.objet
Class CExec  view CExec download CExec.java

java.lang.Object
  extended byorg.fudaa.dodico.objet.CExec

public class CExec
extends java.lang.Object

Un lanceur de processus externes. Lance la commande contenue dans le tableau de String[] dans un nouveau process. 2 Threads autres sont lances pour lire les flux de sortie standard et d'erreur. Ils sont arretes a la fin du process. Ces threads sont obligatoire pour vider les buffers de sorties du processus ( surtout sous windows). Il se peut qu'un thread soit bloque : si un flux n'est pas ouvert la methode readline() reste bloqué. Dans ce cas, le thread concerné sera interrompu.

Version:
$Id: CExec.java,v 1.10 2003/01/21 14:36:50 deniger Exp $

Field Summary
(package private)  boolean catchE
           
(package private)  java.lang.String[] cmd
           
(package private)  java.io.PrintStream err_
           
(package private)  java.io.PrintStream out_
           
private  java.lang.Process p
           
(package private)  MyReaderThread thErr_
           
(package private)  MyReaderThread thOut_
           
 
Constructor Summary
CExec()
          Commandes a null et les exceptions seront catchés et ecrites sur la sortie d'erreur.
CExec(java.lang.String[] _cmd)
           
 
Method Summary
private  void closeReaderThread(MyReaderThread _th)
          Permet de fermer les threads de lecture apres l'arret du process.
 void exec()
          Lance la command dans une process.
 java.lang.Process getProcess()
          Retourne le processus d'execution.
static void main(java.lang.String[] args)
          Prend les arguments du type ex=cmd1 ex=cmd2 et lance CExec.
 void setCatchExceptions(boolean _catchE)
          Specifie si les exceptions doivent etre "catches" ou non.
 void setCommand(java.lang.String[] _cmd)
          Initialisation des commandes.
 void setErrStream(java.io.PrintStream _err)
          Definition du flux recuperant la sortie d'erreur.
 void setOutStream(java.io.PrintStream _out)
          Definition du flux recuperant la sortie standard.
 void stop()
          Cette commande stoppe le processus puis les 2 threads de lecture de flux.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cmd

java.lang.String[] cmd

out_

java.io.PrintStream out_

err_

java.io.PrintStream err_

p

private java.lang.Process p

catchE

boolean catchE

thOut_

MyReaderThread thOut_

thErr_

MyReaderThread thErr_
Constructor Detail

CExec

public CExec()
Commandes a null et les exceptions seront catchés et ecrites sur la sortie d'erreur.


CExec

public CExec(java.lang.String[] _cmd)
Method Detail

setCommand

public void setCommand(java.lang.String[] _cmd)
Initialisation des commandes.


setOutStream

public void setOutStream(java.io.PrintStream _out)
Definition du flux recuperant la sortie standard.


setErrStream

public void setErrStream(java.io.PrintStream _err)
Definition du flux recuperant la sortie d'erreur.


getProcess

public java.lang.Process getProcess()
Retourne le processus d'execution.


setCatchExceptions

public void setCatchExceptions(boolean _catchE)
Specifie si les exceptions doivent etre "catches" ou non. Si elles sont catchees une trace est laissée sur la sortie d'erreur.


closeReaderThread

private void closeReaderThread(MyReaderThread _th)
                        throws java.lang.SecurityException
Permet de fermer les threads de lecture apres l'arret du process. Si le thread est bloqué, il est interrompu. Sinon, s'il n'est pas fermé, on attend 50 ms avant de l'interrompre. Normalement les thread de lecture doivent s'arreter par eux-meme avant la fin du process.


stop

public void stop()
Cette commande stoppe le processus puis les 2 threads de lecture de flux. NON TESTEE.


exec

public void exec()
Lance la command dans une process. 2 Threads sont lances pour lire les flux de sortie standard et d'erreur. Ils sont arretes a la fin du process.


main

public static void main(java.lang.String[] args)
Prend les arguments du type ex=cmd1 ex=cmd2 et lance CExec.