Utiliser runtime poue executer une commande de terminal

xko Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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   Statut Membre Dernière intervention   1
 
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"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