L'exemple de cet article décrit comment Java exécute les commandes Linux. Partagez-le avec tout le monde pour votre référence. La méthode spécifique de mise en œuvre est la suivante :
Copiez le code comme suit :
la classe publique StreamGobbler étend le fil {
InputStream est ;
Type de chaîne ;
public StreamGobbler (InputStream est, type String) {
ceci.est = est ;
this.type = type;
}
public void run() {
essayer {
InputStreamReader isr = new InputStreamReader(est);
BufferedReader br = nouveau BufferedReader(isr);
Ligne de chaîne = null ;
while ((line = br.readLine()) != null) {
if (type.equals("Erreur")) {
System.out.println("Erreur :" + ligne);
} autre {
System.out.println("Debug:" + ligne);
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
shell vide privé (String cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
Processus de traitement ;
essayer
{
processus = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Erreur");
StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "Output");
erreurGobbler.start();
sortieGobbler.start();
essayer
{
processus.waitFor();
}
attraper (InterruptedException e)
{
e.printStackTrace();
}
}
attraper (IOException e)
{
e.printStackTrace();
}
}
Le paramètre cmd est une commande Linux. Une seule commande peut être exécutée à la fois.
1. Notes sur Java Runtime.exec() :
① Lisez toujours le flux de données avant d'appeler la méthode waitFor() ② Lisez toujours d'abord le flux d'erreurs standard, puis lisez le flux de sortie standard
2. La meilleure façon d'exécuter des commandes système est d'écrire un fichier bat ou un script shell.
J'espère que cet article sera utile à la programmation Java de chacun.