Pregunta

Estoy trabajando en una aplicación de línea de comandos de Solaris, escrito en Java6.Me gustaría ser capaz de desplazarse a través de una historia anterior de comandos utilizando las flechas arriba y abajo como muchos Unix herramientas permiten (conchas, VIM en modo de comando símbolo del sistema, etc).

Es allí cualquier manera estándar de lograr esto, o tengo que rodar mis propios?

¿Fue útil?

Solución

Sí, uso el GNU readline biblioteca.

Otros consejos

Creo que usted está buscando algo como JLine pero yo nunca he usado así que no puedo dar fe de su calidad.

Ella al parecer, se puede tratar con autocompletado de comandos y la línea de la historia, y el último lanzamiento fue recientemente (febrero de este año), por lo que por ningún medio muerto.

ledit es grande en linux para ese tipo de cosas.Probablemente sea fácilmente compilado en solaris.

Aclaración:ledit envuelve la llamada a tu otra aplicación de línea de comandos, y puede incluso pasar un archivo a la persistencia de la tienda de su historia.

Aquí está la página de inicio: http://cristal.inria.fr/~ddr/ledit/

Hay un proyecto en SourceForge, http://java-readline.sourceforge.net/, que proporciona JNI basado en los enlaces para GNU readline.He jugado un poco con ella (no se utiliza en un proyecto real), y ciertamente cubre toda la funcionalidad.

advertencia: GNU readline está sujeto a los términos de la licencia GPL:

Readline es software libre, distribuido bajo los términos de la GNU General Licencia pública general gnu, versión 2.Esto significa que si quieres usar Readline en un programa de liberación o distribuir a nadie, el programa debe ser libre software y han compatible con la GPL de la licencia.Si desea asesoramiento sobre hacer de su licencia compatible con la GPL, contacto licensing@gnu.org.

En otras palabras, el uso de Readline extiende la licencia GPL-dad de una biblioteca a la que todo el programa.(El contraste con la LGPL, lo que permite el tiempo de ejecución de la vinculación a una biblioteca, y requiere de fuente abierta solamente para las mejoras a la biblioteca en sí misma).

Para aquellos de nosotros en el mundo comercial, incluso si no estamos desarrollo de aplicaciones comerciales, este es un show-tapón.

De todos modos, la página de la wikipedia listas de varias alternativas, incluyendo JLine, que suena prometedor.

Como un aparte:Yo trabajo para una empresa que diseña productos médicos.Hacemos cero (0) de dólares de software para PC.Casi todo nuestro software se ejecuta en los sistemas integrados de diseñar (y no hacer ningún dinero de las ventas/actualizaciones de este software, sólo los productos en sí mismos);a veces tenemos herramientas de diagnóstico de software que se puede ejecutar en la final de los PCs de los usuarios.(diseño/fabricación/de prueba de software que no está disponible para los clientes yo creo que podría ser posible el uso de la GPL de las bibliotecas, pero no estoy seguro) de los productos Médicos bastante estrictos controles;básicamente, tendrá que demostrar a la FDA de que es seguro para los usuarios, no es como el usuario final puede decidir "oh, no me gusta este software, sólo voy a retocarlo o el uso de la empresa XYZ de postventa de reemplazo" -- que dejaría a los fabricantes de dispositivos abierto a una gran responsabilidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top