Maison >Java >javaDidacticiel >Comment exécuter des programmes externes en Java : un guide de l'interface de processus ?

Comment exécuter des programmes externes en Java : un guide de l'interface de processus ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-20 03:16:02381parcourir

How to Execute External Programs in Java: A Guide to the Process Interface?

Démarrage de processus en Java

Similaire au framework .Net où les processus sont lancés à l'aide de System.Diagnostics.Process.Start("processname" ), Java fournit un moyen pratique d'exécuter des programmes externes.

Processus Java Interface

En Java, la classe Runtime propose la méthode exec() pour démarrer un processus. La syntaxe est :

Process p = Runtime.getRuntime().exec("processname");

où "processname" représente l'exécutable ou la commande à lancer.

Compatibilité multiplateforme

Pour atteindre compatibilité multiplateforme, vous pouvez utiliser la classe System pour déterminer le système d'exploitation actuel et ajuster le lancement du processus en conséquence. Par exemple, sur les systèmes Windows, vous pouvez utiliser le chemin "%windir%system32" avant le nom de l'exécutable.

Entrée et sortie du processus

La classe Process fournit une entrée et des flux de sortie pour communiquer avec le processus en cours d'exécution. Vous pouvez utiliser les méthodes getInputStream() et getOutputStream() pour accéder à ces flux.

Exemple de procédure pas à pas

Le code Java fourni montre comment lancer la commande tree.com /A sur un système Windows :

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.file.Paths;

public class CmdExec {

  public static void main(String[] args) {
    try {
      Process p = Runtime.getRuntime().exec(
          Paths.get(System.getenv("windir"), "system32", "tree.com /A").toString()
      );

      try (BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()))) {
        String line;

        while ((line = input.readLine()) != null) {
          System.out.println(line);
        }
      }

    } catch (Exception err) {
      err.printStackTrace();
    }
  }
}

Ce code lance la commande tree avec l'option /A, qui affiche un répertoire liste sous forme d’arborescence. Le résultat de la commande est ensuite lu et imprimé sur la console.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn