Domanda

Sto lavorando su un'applicazione a riga di comando per Solaris, scritta in Java6.Mi piacerebbe poter scorrere una cronologia dei comandi precedenti utilizzando le frecce su e giù come consentito da molti strumenti Unix (shell, prompt della modalità comando VIM, ecc.).

Esiste un metodo standard per raggiungere questo obiettivo o devo crearne uno mio?

È stato utile?

Soluzione

Sì, usa il Riga di lettura GNU biblioteca.

Altri suggerimenti

Penso che tu stia cercando qualcosa del genere JLine ma non l'ho mai usato quindi non posso attestarne la qualità.

Apparentemente può gestire il completamento automatico e la cronologia della riga di comando, e l'ultima versione è stata recentemente (febbraio di quest'anno), quindi non è affatto morta.

ledit è ottimo su Linux per questo genere di cose.Probabilmente è facilmente compilabile su Solaris.

Una precisazione:ledit avvolge la chiamata all'altra tua app a riga di comando e può anche ricevere un file per archiviare in modo persistente la cronologia.

Ecco la home page: http://cristal.inria.fr/~ddr/ledit/

C'è un progetto SourceForge, http://java-readline.sourceforge.net/, che fornisce collegamenti basati su JNI a GNU readline.Ci ho provato (non utilizzato in un progetto reale) e sicuramente copre tutte le funzionalità.

avvertimento: Riga di lettura GNU è soggetto ai termini di licenza GPL:

Readline è un software gratuito, distribuito ai sensi della licenza del pubblico generale GNU, versione 2.Ciò significa che se si desidera utilizzare ReadLine in un programma che si rilascia o distribuisci a chiunque, il programma deve essere un software gratuito e avere una licenza compatibile con GPL.Se desideri un consiglio su come rendere la tua licenza GPL-compatibile, contatta licensing@gnu.org.

In altre parole, l'uso di Readline diffonde la licenza GPL da una libreria all'intero programma.(In contrasto con LGPL, che consente il collegamento runtime a una libreria e richiede l'open source solo per miglioramenti alla libreria stessa.)

Per quelli di noi che lavorano nel mondo commerciale, anche se non stiamo sviluppando applicazioni commerciali, questo è un punto fermo.

Comunque, la pagina di Wikipedia elenca diverse alternative, tra cui JLine, che sembra promettente.

Tanto per inciso:Lavoro per un'azienda che progetta prodotti medici.Guadagniamo zero (0) dollari dal software per PC.Quasi tutto il nostro software funziona sui sistemi embedded che progettiamo (e non guadagniamo denaro dalle vendite/aggiornamenti di questo software, ma solo dai prodotti stessi);a volte disponiamo di strumenti diagnostici software che possono essere eseguiti sui PC degli utenti finali.(software di progettazione/produzione/test che non viene rilasciato ai clienti, penso che sia possibile utilizzare le librerie GPL ma non ne sono sicuro) I prodotti medici hanno controlli abbastanza rigidi;fondamentalmente devi dimostrare alla FDA che è sicuro per gli utenti, non è che l'utente finale possa decidere "oh, non mi piace questo software, lo modificherò o utilizzerò il sostituto aftermarket dell'azienda XYZ" - questo sarebbe lasciare i produttori di dispositivi esposti a un’enorme responsabilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top