/ / Comment puis-je exécuter un terminal UNIX à partir de Java et lui envoyer des commandes? - java, shell, unix, terminal

Comment puis-je exécuter un terminal UNIX à partir de Java et lui envoyer des commandes? - java, shell, unix, terminal

Concernant le sujet, le code ci-dessous


    Process proc = null;
try {
String[] cmdss= {"gnome-terminal"};


proc = Runtime.getRuntime().exec(cmdss, null, wd);
} catch (IOException e) {
e.printStackTrace();
}

Exécute le terminal sous Ubuntu.

Comment puis-je donner des commandes au terminal après avoir exécuté le terminal?

Exemple: exécuter le terminal et exécuter une commande telle que "ls" etc.

Réponses:

2 pour la réponse № 1

Tu peux donner gnome-terminal certaines options sur la ligne de commande, ce qu’il exécutera.

gnome-terminal -e /my/fortran/program

le -x Cette option vous donne à peu près le même avantage, mais vous pouvez diviser la ligne de commande en mots séparés.

Tous les deux -e et -x Exécuter le programme avec des arguments optionnels tout en connectant l’entrée et la sortie standard du programme au terminal. Ainsi, l'utilisateur peut interagir correctement avec le terminal.

Exemple:

gnome-terminal -x bash -c "ls; echo "<enter>"; read"

Cela ouvrira le terminal et lancera le "programme" bash. bash aura deux arguments: -c et ls; echo ....; read. le -c option permet à bash d’analyser et d’exécuter le prochain argument. Cela appellera ls, puis echo ... puis read qui attend la clé de retour.

En Java, vous devez fractionner les arguments de manière appropriée dans un tableau comme celui-ci:

String cmd[] = {"gnome-terminal", "-x", "bash", "-c", "ls; echo "<enter>"; read" };