20

Attualmente sto lavorando su un piccolo programma di utilità che richiede solo un'interfaccia a riga di comando, e ho iniziato a chiedermi se Java ha fornito un modo standard per creare la CLI, in modo simile a Swing e simili per le GUI. Non sono molto interessato ai parametri della riga di comando e al loro parsing, ma piuttosto all'interazione basata sui comandi che l'utente ha con il programma per usarlo. Questo è per le situazioni in cui la GUI semplicemente non è necessaria o non è un'opzione per l'utilizzo del programma.Java UI-design CLI: framework o librerie?

Googling il soggetto praticamente solo i risultati a tutorial su come usare BufferedReader e le piace fare l'interazione rudimentale con l'utente, rivolto a persone che imparano le basi di Java e la scrittura semplice interfaccia utente che richiede il nome e la stampa "Ciao Mondo !" ecc.

Le librerie che sono focalizzate sulla fornitura di un buon framework per implementare rapidamente un'interfaccia utente CLI più complessa o sono davvero qualcosa che tutti implementano in modo ad hoc per le proprie utility?

Forse qualcuno conosce gli schemi per l'implementazione che sono stati creati indietro nel tempo quando non tutto era grafico? Sarebbe anche una risorsa utile.

+0

sarebbe non Apache Commons CLI (http://commons.apache.org/cli/) aiutare? – sateesh

+3

No, Apache Commons CLI è davvero creato per l'analisi degli argomenti della riga di comando e non contribuisce in modo specifico alla progettazione o all'implementazione dell'interfaccia utente. – Fuu

risposta

6

Toolkit Forse CLI ...

http://alexis.royer.free.fr/CLI/

+0

Questo sembra un buon approccio, sicuramente il più rilevante finora. – Fuu

+0

Sfortunatamente richiede cgywin su Windows. –

3

c'è un progetto chiamato JLine che fornisce il supporto multi-piattaforma per la gestione di input generale della riga di comando:

http://jline.sourceforge.net/

Più di una libreria di supporto di un quadro però.

+0

In effetti, non esiste un vero framework per l'integrazione di CLI in Java e jline è la libreria più importante per questo tipo di lavoro. Penso che sia usato, ad esempio, per l'interprete groovy in modalità riga di comando. – Riduidel

+0

Guardando JLine, sarebbe di aiuto soprattutto fornendo un completamento automatico per i comandi digitati. Utile, ma in realtà non soddisfa i criteri. – Fuu

1

Effettua una ricerca per MALEDIZIONI e Java, qualcosa di simile http://www.google.co.uk/search?q=curses+for+java. Molto tempo fa CHARVA (http://www.pitman.co.za/projects/charva/index.html) sembrava carino.

+2

Interessanti collegamenti, questi prendono l'approccio di fondamentalmente il porting della GUI Swing/AWT nel terminale basato sul testo. Il problema è che non riduce lo sforzo di sviluppo che è l'obiettivo dell'interfaccia utente rapida di CLI, poiché in questo caso si potrebbe anche farlo in Swing e avere un'interfaccia grafica.:) – Fuu

6

Si può anche avere uno sguardo e Clamshell-cli o guscio di primavera:

  • Clamshell-cli è relativamente semplice e facile da usare: è può guardare jmx-cli per ottenere un buon esempio di cosa si può fare con esso.

  • Spring Shell è più grande ma più pieno di funzionalità (completamento scheda, ecc.). E 'stato estratto dalla primavera Roo e rilasciato come un framework indipendente