Java CLI UI-design: estruturas ou bibliotecas? [fechadas]
-
19-09-2019 - |
Pergunta
Atualmente estou trabalhando em um pequeno utilitário que requer apenas uma interface de linha de comando, e eu comecei a pensar se Java fornecido qualquer maneira padrão de criar o CLI, em uma maneira similar que Swing e os gostos existem para GUIs. Eu não estou realmente interessado em parâmetros de linha de comando e análise deles, mas sim a interação baseada em comandos que o usuário tem com o programa para usá-lo. Isto é para as situações em que GUI é simplesmente desnecessário ou não uma opção para utilizar o programa.
pesquisando o assunto praticamente só resulta em tutoriais sobre como usar BufferedReader e os gostos para fazer interação rudimentar com o usuário, destinado a pessoas que aprendem as noções básicas de Java e escrever UI simples que pede o nome e imprime "Olá mundo! " etc ..
Os quaisquer bibliotecas que estão focados em fornecer uma estrutura boa para a rápida implementação de uma interface CLI mais complexo ou isso é realmente algo que todos implementos em forma ad hoc para os seus próprios serviços públicos?
Talvez alguém sabe de padrões para a implementação que foram criados para trás no tempo, quando nem tudo foi gráfica? Que também seria recurso útil.
Solução
Talvez CLI Toolkit ...
Outras dicas
Você também pode dar uma olhada e shell Clamshell-cli ou primavera:
-
Clamshell-cli é relativamente simples e fácil de usar: você pode olhar para jmx-cli para obter um bom exemplo do que pode ser feito com ele.
-
Primavera Shell é maior, mas mais (conclusão da aba longa-cheia, etc ). Ele foi extraído do Spring Roo e lançado como uma estrutura independente
Há um projeto chamado JLine que fornece suporte multi-plataforma para a manipulação de entrada de linha de comando geral:
Mais de uma biblioteca de apoio do que um quadro embora.
Tente pesquisar por maldições e Java, algo como http: // www.google.co.uk/search?q=curses+for+java . Há muito tempo atrás CHARVA ( http://www.pitman.co.za/projects /charva/index.html ) parecia agradável.
Eu usei o apache commons biblioteca CLI no passado e tem funcionado bem para mim: http: / /commons.apache.org/cli/