Utiliser runtime poue executer une commande de terminal

Fermé
xko Messages postés 55 Date d'inscription mardi 15 mars 2016 Statut Membre Dernière intervention 28 juillet 2022 - 3 juin 2017 à 01:13
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 4 juin 2017 à 17:16
salut
comment utiliser cette instruction : Runtime.getRuntime().exec("...") pour exécuter une commande de terminal sous ubuntu 14 (la commande est: snort -r snort.log.25339854)
et merci
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
3 juin 2017 à 01:17
Bonjour,

Essayes comme ceci :

String[] commande = { "snort", "-r", "snort.log.25339854" };
Process process = Runtime.getRuntime().exec(commande);
0
xko Messages postés 55 Date d'inscription mardi 15 mars 2016 Statut Membre Dernière intervention 28 juillet 2022 1
4 juin 2017 à 16:54
bonjour,
j'ai exécuté cette instruction :
process process = Runtime.getRuntime().exec("/usr/bin/gnome-terminal");
le terminal s'ouvre mais quand je tape :
process process = Runtime.getRuntime().exec("snort -r snort.log.25634788") ou bien : process process = Runtime.getRuntime().exec("/usr/bin/gnome-terminal snort -r snort.log.25634788") il n'affiche pas d'erreurs mais aussi pas de reponse :/
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
4 juin 2017 à 17:16
"Runtime.getRuntime().exec("snort -r snort.log.25634788") ou bien : process process = Runtime.getRuntime().exec("/usr/bin/gnome-terminal snort -r snort.log.25634788")"
Et pourquoi tu n'utilises pas la commande que je t'ai donné ?
Le découpage par tableau permet de séparer les instructions entre elles.
Si tu fais "snort -r snort.log.25634788" c'est une seule instruction alors que tu veux en avoir trois : "snort" avec l'option "-r" et le paramètre "snort.log.25634788"

"le terminal s'ouvre"
Ça n'a aucune importance que le terminal s'ouvre, Runtime se comporte déjà comme un terminal, pas besoin d'avoir l'interface graphique qui s'ouvre.

"il n'affiche pas d'erreurs mais aussi pas de reponse"
Il faut utiliser l'objet Process de retour pour récupérer les flux de sorties.
Voir les méthodes getInputStream() et getErrorStream() qui te renvoie un InputStream que tu peux lire par exemple avec un Scanner comme on le ferait avec System.in
0