En Linux, hay una serie de emuladores de terminal que le permiten interactuar con diversas conchas. Cada shell es básicamente un intérprete de comandos que entiende los comandos de Linux (GNU & los comandos Unix son más correctos, supongo ...). Un emulador de terminal proporciona una interfaz (ventana) para el shell y algunas otras facilidades para usar el símbolo del sistema. Para abrir una ventana de terminal, sólo hay que modificar la cadena de comando como el siguiente: -
import java.io.*;
class TerminalLauncher
{
public static void main(String args[]) throws IOException
{
String command= "/usr/bin/xterm";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);
}
}
El supuesto básico que he hecho es que desea abrir xterm, que está disponible en casi cualquier sistema (con X instalado por supuesto). Es posible que desee abrir otro emulador de terminal como rxvt, eterm, aterm, gnome-terminal o konsole. La cadena de comandos también se puede modificar para usar diferentes shells como zsh. Sugiero que capture una excepción en caso de que el terminal que eligió no esté presente y lo maneje pidiéndole al usuario que lo instale.Una mejor solución es aceptar argumentos de línea de comando para el shell preferido de los usuarios o usar un archivo de configuración que el usuario puede cambiar para hacer que el script abra el shell de su elección.
Nota
1. Como otros ya han señalado, xterm (o cualquier otro terminal de su elección) no pueden estar en la ruta especificada (/ usr/bin/...) y pueden incluso no ser instalado, por lo que es posible que tenga que utilizar una cadena de comandos de lujo (por ejemplo: pipelining find a grep para obtener la ruta a xterm antes de iniciar), que no es una gran idea. Creo que la mejor manera es dejar que el usuario configure todo.
2. Recibí un comentario sobre esta respuesta (por ypnos), sugiriendo que evito el uso de rutas absolutas y confío en que el comando está en la variable de entorno PATH. Debo decir que estoy de acuerdo. En ese caso, la cadena de comandos debe ser -
String command = "xterm"
se fijan en el comentario, ya que también señala el problema con el uso hallazgo.
¿Puedes aclarar? ¿Desea abrir un terminal o desea ejecutar un script? Los usuarios tienen una variedad de terminales diferentes, y sería difícil garantizarle que puede abrir una. Pero al ejecutar un script, casi todos los linux box tienen/bin/sh (simplemente no necesariamente en esa ruta absoluta) – num1