Tout d'abord, nous devons augmenter les autorisations d'exécution de l'utilisateur pour le script, c'est-à-dire,
La copie de code est la suivante:
String cmdString = "Chmod a + x test.sh";
Process proc = runtime.getRuntime (). Exec (cmdString);
proc.waitfor ();
cmdString = "bash test.sh";
proc = runtime.getRuntime (). exec (cmdString);
// faites attention aux opérations suivantes
chaîne ls_1;
BufferedReader BufferedReader = new BufferedReader (new InputStreamReader (Proc.GetInputStream ());
while ((ls_1 = bufferedReader.readline ())! = null);
BufferedReader.Close ();
Proc.Waitfor ();
Pourquoi avez-vous besoin de l'opération ci-dessus?
La raison en est la suivante: la sortie du programme exécutable peut être relativement grande, tandis que le tampon de sortie de la fenêtre d'exécution est limité, ce qui entraînera un bloquer tout le temps. La solution consiste à utiliser les méthodes GetInputStream et GetErrorStream fournies par la classe de processus fournies par Java pour permettre à la machine virtuelle Java d'intercepter la sortie standard et la sortie d'erreur du programme appelé et de lire le contenu dans le tampon de sortie avant le WaitFor () commande.
J'espère que vous pouvez aimer cet article.