ProcessBuilder Auf der aktuellen Site gab es eine Anfrage, Shell aus Java heraus zu treffen. Als Ergebnis der Untersuchung wurde sie in diesem Artikel eingeführt. ** ProcessBuilder * Es scheint, dass Sie etwas verwenden sollten, das * heißt. Ich habe den verknüpften Code umgeleitet, aber wenn ich ihn tatsächlich verwende, werde ich den Aufruf des Prozesses dynamisch ändern ... Also habe ich ein Memo komplett geschrieben.
CallOutsideProcess.java
/**
Rufen Sie beim Anrufer so viele Argumente auf, wie Sie möchten.
Ex) execute(new String[]{"ping","111,222,33,4"});
*/
public class CallOutsideProcess {
public void execute(String args[]) {
try {
Process process = new ProcessBuilder(args).start();
InputStream is = process.getInputStream();
/*Abhängig von der Ausgabe der Zeichenfolge usw. auf der Prozessausführungsseite
Wenn die Zeichencodes nicht übereinstimmen, werden die Zeichen beim Empfang verstümmelt.*/
InputStreamReader isr = new InputStreamReader(is, "Shift-JIS");
// InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader reader = new BufferedReader(isr);
StringBuilder builder = new StringBuilder();
int c;
while ((c = reader.read()) != -1) {
builder.append((char) c);
}
//Speicherung von Zeichenfolgen, die an die Konsole ausgegeben werden
text = builder.toString();
//Speicherung des Endcodes(0:Normale Kündigung 1:Abnormale Beendigung)
int ret = process.waitFor();
System.out.println(text);
System.out.println(ret);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
Es war ein Inhalt, den ich wahrscheinlich in Zukunft verwenden würde, also erinnern wir uns ... ~~ (... Ich habe es geschrieben, damit ich mich daran erinnern kann, auch wenn ich es vergesse) ~~
Recommended Posts