/ / ¿Cómo ejecuto un terminal UNIX desde Java y le envío comandos? - java, shell, unix, terminal

¿Cómo ejecuto un terminal UNIX desde Java y le envío comandos? - java, shell, unix, terminal

En cuanto al tema, el código a continuación


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


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

Ejecuta el terminal desde Ubuntu.

¿Cómo envío comandos al terminal después de ejecutar el termnal?

por ejemplo: ejecutar el terminal y ejecutar comandos como "ls", etc.

Respuestas

2 para la respuesta № 1

Puedes dar gnome-terminal algunas opciones en la línea de comando lo que se ejecutará.

gnome-terminal -e /my/fortran/program

los -x La opción le brinda aproximadamente el mismo beneficio, pero puede dividir la línea de comandos en palabras separadas.

Ambos -e y -x ejecute el programa con argumentos opcionales mientras conecta la entrada y salida estándar del programa al terminal. Para que el usuario pueda interactuar con el terminal correctamente.

Ejemplo:

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

Esto abrirá la terminal y ejecutará el "programa" bash. bash obtendrá dos argumentos: -c y ls; echo ....; read. los -c La opción hace que bash analice y ejecute el siguiente argumento. Esto llamará ls, entonces echo ... entonces read que espera la tecla de retorno.

En Java, debe dividir los argumentos adecuadamente en una matriz como esta:

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