In Linux, ci sono una serie di emulatori di terminale che permettono di interagire con i vari conchiglie. Ogni shell è fondamentalmente un interprete di comandi che capisce i comandi di Linux (GNU & i comandi Unix sono più corretti, suppongo ...). Un emulatore di terminale fornisce un'interfaccia (finestra) per la shell e alcune altre funzionalità per l'utilizzo del prompt dei comandi. Per aprire una finestra di terminale, è sufficiente modificare la stringa di comando in questo modo: -
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);
}
}
L'assunto di base che ho fatto è che si vuole aprire xterm, che è disponibile su quasi tutti i sistemi (con X installato ovviamente). Potresti voler aprire un altro emulatore di terminale come rxvt, eterm, aterm, gnome-terminal o konsole. La stringa di comando può anche essere modificata per utilizzare shell differenti come zsh. Ti suggerisco di rilevare un'eccezione nel caso in cui il terminale che hai scelto non sia presente e gestirlo chiedendo all'utente di installarlo.Una soluzione migliore è accettare gli argomenti della riga di comando per la shell preferita dagli utenti o utilizzare un file di configurazione che l'utente può modificare per far sì che lo script apra la shell di sua scelta.
Nota
1. Come altri hanno già fatto notare, xterm (o qualsiasi altro terminale di vostra scelta), non possono essere nel percorso specificato (/ usr/bin/...) e potrebbe anche non essere installato, quindi potrebbe essere necessario utilizzare una stringa di comando di fantasia (Ex: pipelining find tramite grep per ottenere il percorso di xterm prima dell'avvio), che non è una grande idea. Penso che il modo migliore sia lasciare che l'utente configuri il tutto.
2. Ho ricevuto un commento su questa risposta (di ypnos), suggerendo di evitare l'uso di percorsi assoluti e piuttosto di fare affidamento sul comando presente nella variabile d'ambiente PATH. Devo dire che sono d'accordo. In tal caso, la stringa di comando dovrebbe essere -
String command = "xterm"
Do un'occhiata al commento, perché sottolinea anche il problema con l'utilizzo di ritrovamento.
Potete chiarire? Vuoi aprire un terminale o vuoi eseguire uno script? Gli utenti hanno una varietà di terminali diversi, e sarebbe difficile riuscire a garantirne l'apertura. Ma eseguendo uno script, quasi ogni box Linux ha/bin/sh (solo non necessariamente in quel percorso assoluto) – num1