précédent | suivant | table des matières

Classe System

Sommaire
  1. Entrées-Sorties standard
  2. Environnement et propriétés
  3. Divers

(Démonstration)

La classe System contient des attributs et méthodes très utiles. Cette classe ne peut pas être intanciée.

1 Entrées/sorties standard

static PrintStream err
La sortie standard erreur.
static  InputStream in
L'entrée standard.
static  PrintStream out
La sortie standard.

Ces entrées/sorties peuvent être redirigées :

static void setErr(PrintStream err)
Change la sortie standard erreur.
static void  setIn(InputStream in)
Change l'entrée standard.
static void  setOut(PrintStream out)
Change la sortie standard.

Exemple : rediriger out et err vers des JTextArea d'une interface 

class Redirige implements Runnable{
   JTextArea jTOut = new JTextArea();
   JTextArea jTErr = new JTextArea();
   boolean fin;
   PipedInputStream pipeOutI = null; 
   PipedInputStream pipeErrI = null;
   
   public void redirection(){
      try {
         PipedOutputStream pipeOut = new PipedOutputStream();
         pipeOutI = new PipedInputStream(pipeOut);
         PrintStream pso = new PrintStream(pipeOut);   
         PipedOutputStream pipeErr = new PipedOutputStream();
         pipeErrI = new PipedInputStream(pipeErr);
         PrintStream pse = new PrintStream(pipeErr);   
         System.setOut(pso);
         System.setErr(pse);
         fin = false;
         tOut = new Thread(Redirige);   tOut.start();    
         tErr = new Thread(Redirige);   tErr.start();
      } catch (IOException e) {
      }
   }
   public synchronized void run() {
      try {
         if (fin) return;
         while (Thread.currentThread() == tOut) {
            try {
               this.wait(5);
            } catch (InterruptedException ie) {
            }
            if (pipeOutI.available() != 0) {
               int c = pipeOutI.read();
               jTOut.append("" + (char) c);
            }
            if (fin)   return;
         }
         while (Thread.currentThread() == tErr) {
            try {
               this.wait(5);
            } catch (InterruptedException ie) {
            }
            if (pipeErrI.available() != 0) {
               int c = pipeErrI.read();
               jTErr.append("" + (char) c);
            }
            if (fin) return;
         }
      } catch (Exception e) {
      }
   }
}

2 Environnement et propriétés

Les variables d'nvironnement sont les variable utilisateur plus les variables système. Les propriétés sont liées à l'exécution de l'application : awt.toolkit, file.encoding, file.separator, java.class.path, java.home, os.arch, os.name, user.dir, user.language ...

static Map<String,String> getenv() 
Retourne une vue des variables d'environnement du système.
static String getenv(String nom)
Retourne la valeur de la variable d'environnement de nom nom.
static Properties getProperties()
Retourne l'ensemble des propriétés du système.
static String getProperty(String nom)
Retourne la valeur de la propriété de nom nom.
static String getProperty(String key, String def)
static  void setProperties(Properties props)
Change l'ensemble des propriétés.
static String setProperty(String cle, String valeur)
Change la valeur de la propriété cle.
static String clearProperty(String cle)
Supprime la cle cle et retourne sa valeur, ou null si la clé n'existait pas.

3 Divers

static void arraycopy(Object src, int srcPos,
        Object dest, int destPos, int l)
Copie un tableau depuis la source src et l'indice srcPos vers la destination dest à partir de l'indice destPos et sur une longueur l.
static long currentTimeMillis()
Retourne l'heure courante en millisecondes.
static long nanoTime()
Retourne l'heure actuelle, en nanosecondes.
static void exit(int status)
Arrête l'exécution de la machine virtuelle Java avec l'état status.
static void gc()
Lance l'exécution du garbage Collector qui va récupérer l'espace mémoire qui n'est plus utilisé par le programme : l'espace occupé par les objets qui ne sont plus référencés.
static int identityHashCode(Object x) 
Retourne le hashcode délivré par la classe Object, même si l'objet redéfinit sa propre méthode de hashCode.
static void load(String filename)
Charge un fichier de code exécutable ou une dll. Equivalent à Runtime.getRuntime().load(name)
static void loadLibrary(String libname)
Charge une librairie. Equivalent à Runtime.getRuntime().loadLibrary(name)

haut de la page