Exécuter un processus externe en Java

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

Exécuter un processus externe en Java
J'ai envoyé un e-mail en Java
Exécuter des applications Java dans Azure Batch
processus thread-safe en java
Essayez une expression If en Java
Exécuter des applications écrites en Java8 en Java6
Traitez n'importe quel nombre de cas dans la liste Java
Processus de mise en mémoire tampon Java
Changements dans Java 11
Janken à Java
Processus de vérification Java
Lors de l'appel de println etc. à partir d'un fichier de classe Java externe en traitement
Je souhaite envoyer un e-mail en Java.
Deuxième décoction: essayez une expression If en Java
Comment résoudre les problèmes d'expression en Java
S'entendre avec les conteneurs Java dans Cloud Run
Lire JSON en Java
Faites un blackjack avec Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
J'ai écrit sur Java downcast d'une manière facile à comprendre
[java] Lancer une exception
Commentaires dans la source Java
Fonctions Azure en Java
Exécutez PostgreSQL sur Java
Formater XML en Java
Simple htmlspecialchars en Java
Hello World en Java
Ajoutez un fichier jar externe dans un projet IntelliJ.
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Implémentez rapidement singleton avec enum en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
POST JSON en Java
J'ai essayé d'utiliser l'instruction Extended for en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Java11: exécuter le code Java dans un seul fichier tel quel
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Utiliser Java Web Start dans un environnement OpenJDK sous Windows
Identifiez les threads du processus Java qui gaspillent du processeur
Exécuter R à partir d'un processus Java optimisé par Tomcat sur Amazon Linux
Afficher les prévisions météorologiques à l'aide d'OpenWeatherMap, une API externe de Ruby
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Arrêter de force le processus Java en spécifiant le PID dans Windows PowerShell
Générer AWS Signature V4 en Java et demander l'API
Générer un flux à partir d'un tableau de types primitifs en Java