Utiliser runtime poue executer une commande de terminal

xko Messages postés 64 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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 19031 Statut Modérateur 3 020
 
Bonjour,

Essayes comme ceci :

String[] commande = { "snort", "-r", "snort.log.25339854" };
Process process = Runtime.getRuntime().exec(commande);
0
xko Messages postés 64 Statut Membre 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 19031 Statut Modérateur 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