ProcessBuilder Sur le site actuel, il y avait une demande pour frapper Shell depuis Java, donc à la suite de l'enquête, il a été introduit dans cet article ** ProcessBuilder * Il semble que vous devriez utiliser quelque chose appelé *. J'ai détourné le code lié, mais quand je l'utilise réellement, je changerai dynamiquement l'appel du processus ... Alors, j'ai écrit un mémo complètement.
CallOutsideProcess.java
/**
Appelez autant d'arguments que vous le souhaitez à l'appelant.
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();
/*En fonction de la sortie de la chaîne de caractères, etc. côté exécution du processus
Si les codes de caractères ne correspondent pas, les caractères seront déformés lors de la réception.*/
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);
}
//Stockage de la sortie des chaînes de caractères vers la console
text = builder.toString();
//Stockage du code final(0:Terminaison normale 1:Terminaison anormale)
int ret = process.waitFor();
System.out.println(text);
System.out.println(ret);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
C'était un contenu que j'allais probablement utiliser à l'avenir, alors souvenons-nous ... ~~ (... je l'ai écrit pour que je puisse m'en souvenir même si je l'oublie) ~~
Recommended Posts