Das Beispiel in diesem Artikel beschreibt, wie Java Linux-Befehle ausführt. Teilen Sie es als Referenz mit allen. Die spezifische Implementierungsmethode ist wie folgt:
Kopieren Sie den Codecode wie folgt:
öffentliche Klasse StreamGobbler erweitert Thread {
InputStream ist;
String-Typ;
public StreamGobbler(InputStream is, String type) {
this.is = ist;
this.type = Typ;
}
public void run() {
versuchen {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
if (type.equals("Error")) {
System.out.println("Fehler:" + Zeile);
} anders {
System.out.println("Debug:" + line);
}
}
} Catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
private void-Shell (String cmd)
{
String[] cmds = { "/bin/sh", "-c", cmd };
Prozessprozess;
versuchen
{
Process = Runtime.getRuntime().exec(cmds);
StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStream(), "Error");
StreamGobbler OutputGobbler = new StreamGobbler(process.getInputStream(), "Output");
errorGobbler.start();
AusgabeGobbler.start();
versuchen
{
prozess.waitFor();
}
Catch (InterruptedException e)
{
e.printStackTrace();
}
}
Catch (IOException e)
{
e.printStackTrace();
}
}
Der Parameter cmd ist ein Linux-Befehl. Es kann jeweils nur ein Befehl ausgeführt werden.
1. Hinweise zu Java Runtime.exec():
① Lesen Sie immer den Datenstrom, bevor Sie die Methode waitFor () aufrufen. ② Lesen Sie immer zuerst den Standardfehlerstrom und dann den Standardausgabestrom
2. Der beste Weg, Systembefehle auszuführen, besteht darin, eine Bat-Datei oder ein Shell-Skript zu schreiben.
Ich hoffe, dass dieser Artikel für die Java-Programmierung aller hilfreich sein wird.