Para el análisis de línea de comandos en Java, normalmente uso Apache Commons CLI. ¿Alguien puede recomendar alguna biblioteca alternativa?Análisis de línea de comandos: ¿alternativas de CLI de Commons?
Respuesta
JCommander suena como un enfoque muy simple e interesante para analizar los argumentos de línea de comandos con anotaciones (del creador de TestNG):
realizar anotaciones campos con descripciones de sus opciones:
import com.beust.jcommander.Parameter;
public class JCommanderTest {
@Parameter
public List<String> parameters = Lists.newArrayList();
@Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
public Integer verbose = 1;
@Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
public String groups;
@Parameter(names = "-debug", description = "Debug mode")
public boolean debug = false;
}
y luego simplemente le pregunta JCommander para analizar:
JCommanderTest jct = new JCommanderTest();
String[] argv = { "-log", "2", "-groups", "unit", "a", "b", "c" };
new JCommander(jct, argv);
Assert.assertEquals(jct.verbose.intValue(), 2);
Así lo presentó Cederic: http://beust.com/weblog/2010/07/13/announcing-jcommander-1-0/ – Jan
No se pudo encontrar una API para imprimir la ayuda. Consulte la pregunta relacionada: http://stackoverflow.com/questions/30046171/how-to-print-help-using-jcommander –
JCommander ahora está aquí http://jcommander.org/ – xamde
¿Le puede servir esta respuesta? How to parse command line arguments in Java?
Agradezco estos enlaces a marcos alternativos y tengo que admitir que no me di cuenta de esta pregunta muy similar.Sin embargo, esperaba llegar a alguien que * realmente intentó * alternativas diferentes y que es capaz * de * recomendar * uno de esos. – Jan
En el respecto, este es el tipo de artículo que estaba buscando: http://furiouspurpose.blogspot.com/2008/07/command-line-parsing-libraries-for-java.html ¡Gracias! – Jan
veo unos cuantos figuran en esta lista command line interpreters
En java-source.net se pueden encontrar al menos otras 4 bibliotecas alternativas a Apache Commons CLI.
getopt-1.0.11 es un simple y fácil de usar biblioteca ligera he usado una vez para me lo quitaron de línea de comandos de análisis sintáctico
yo uso y como
http://martiansoftware.com/jsap/
su fuente abierta, sencilla. No está activo, creo que el autor tiene otros hierros en el fuego.
Yo personalmente uso args4J de Kohsuke en https://github.com/kohsuke/args4j
También es mi preferencia personal. args4j es más flexible que JCommander. Los principios son los mismos, pero es más intuitivo de usar y diferenciar entre argumentos y opciones. –
Usted podría intentar commandline (bonito nombre en el anonimato, lo sé)
Utiliza anotaciones para mapear los argumentos de línea de comandos en un modelo de objetos. Un par de modos de análisis y un conjunto de anotaciones que se pueden combinar de varias maneras le permite crear reglas de opciones de línea de comandos bastante avanzadas.
Si bien le permite asignar los argumentos de la línea de comando directamente en su modelo de dominio, , debería considerar el uso de clases separadas para los argumentos de la línea de comando.
- 1. Análisis de instrucción de línea de comandos
- 2. CLI Commons requiere grupos
- 3. CLI de Apache Commons: tipo de opción y valor predeterminado
- 4. Alternativas a commons-net FTPSClient?
- 5. Entrada de línea de comandos de análisis para los números
- 6. línea de comandos análisis arg a través de la introspección
- 7. ¿Puede el analizador de opciones de la CLI de Apache Commons ignorar opciones de línea de comando desconocidas?
- 8. Apache Commons CLI nombres de valor de argumento múltiple en la opción -help
- 9. Nueva línea en la CLI de PHP
- 10. Cómo recuperar parámetros cuando se utiliza la biblioteca CLI de Apache Commons
- 11. ¿Requiere un solo argumento en Apache Commons CLI?
- 12. Ejecución de lotes de comandos utilizando Redis cli
- 13. Análisis de línea de comandos C# de rutas citadas y evitar caracteres de escape
- 14. PHP CLI en Windows: ¿Manejo de comandos Ctrl-C?
- 15. Manera más simple de hacer un análisis xml básico desde la línea de comandos de Unix
- 16. ¿Hay una herramienta de línea de comandos para la visualización y análisis de datos?
- 17. Cómo especificar múltiples opciones usando apache commons cli?
- 18. Haskell: Análisis de los argumentos de la línea de comando
- 19. Python, análisis de argumento de línea de comando
- 20. ¿Alternativas a FastDateFormat para un análisis de fecha eficiente?
- 21. línea de comandos personalizada analizar en Python
- 22. ¿Cómo asegurarse de que todos los argumentos se proporcionan en Apache Commons CLI?
- 23. Nombre del servidor PHP de la línea de comandos
- 24. emular unix 'cortar' usando comandos de línea de comandos/línea de comando de Windows estándar
- 25. Credenciales de línea de comandos de JConsole
- 26. ¿Cómo se ejecutan los comandos CLI de Windows en Ruby?
- 27. comandos de cadena en la línea de comandos PowerShell
- 28. Análisis de argumento de línea de comando elegante para PyQt
- 29. pg_dump: demasiados argumentos de línea de comandos
- 30. Java argumentos de la línea de comandos
Si va a pedir una alternativa a la que usa normalmente, sería útil si dijera lo que está buscando y que su opción normal no proporciona. –
Para ser sincero, no tenía en mente una característica en particular. Es cierto que Apache Commons CLI es 'probado y probado', pero también es bastante detallado. Me preguntaba si alguien presentó alguna idea nueva en esta área. En esta categoría, creo que voy a echar un vistazo más de cerca a la sugerencia de JCommander a continuación. – Jan
posible duplicado de [¿Hay un buen analizador de argumentos de línea de comandos para Java?] (Http://stackoverflow.com/questions/367706/is-there-a-good-command-line-argument-parser-for-java) –