Existe-t-il de bonnes bibliothèques Java qui facilitent la création d’applications en ligne de commande?

Je dois écrire une application de ligne de commande simple en Java. Ce serait bien d’utiliser une bibliothèque qui prend en charge l’parsing des commandes et prend en charge des éléments tels que les indicateurs et les parameters facultatifs / obligatoires …

METTRE À JOUR

Quelque chose qui a la complétion TAB intégrée serait particulièrement bien.

J’ai utilisé la bibliothèque CLI Apache Commons pour l’parsing des arguments de ligne de commande. C’est assez facile à utiliser et sa documentation est relativement bonne .

La bibliothèque que vous choisissez dépend probablement du style d’option que vous préférez (“-gnu-style” ou “-javac-style”).

Mise à jour: l’ achèvement du module TAB de picocli est récemment devenu disponible et peut être intéressant. Pas au courant de toute autre bibliothèque d’parsing de ligne de commande fournissant l’achèvement de la ligne de commande requirejse dans l’OP.

JLine semble utile.

JLine est une bibliothèque Java pour gérer les entrées de la console. Ses fonctionnalités sont similaires à celles de editline BSD et readline GNU. Les personnes familiarisées avec les fonctionnalités readline / editline pour les shells modernes (tels que bash et tcsh) trouveront la plupart des fonctionnalités d’édition de commandes de JLine familières.

Et il fait la liste complète des tabs dans ses fonctionnalités .

Comme vous recherchez une bibliothèque qui facilite le développement d’une application shell interactive, je suggère Cliche .

Regardez arg4j .

Dans notre entreprise, nous utilisons JewelCli qui utilise une définition d’interface Java annotée pour décrire l’interface de ligne de commande dans un style déclaratif.

Léger et simple à utiliser, je le recommande.

J’ai largement utilisé l’ parsingur d’argument simple Java . Il gère toutes sortes de types d’options, dispose d’une bibliothèque bien conçue (y compris la possibilité d’écrire des parsingurs personnalisés) et fournit une bonne documentation à la fois dans JavaDocs et en ligne .

Je pense que votre désir de terminer les tabulations sera pris en charge par le shell plutôt que par la bibliothèque d’parsing de ligne de commande.

Il existe un port Java de la bibliothèque GNU getopt pour l’parsing de la ligne de commande. Pour l’édition des commandes et l’achèvement de TAB, il existe JLine (comme l’a déjà recommandé mmyers).

Il vaut également la peine de regarder –jopt-simple .

Il tente de respecter les syntaxes d’option de ligne de commande de POSIX getopt () et GNU getopt_long (). ‘ Il semble y avoir une certaine traction dans la communauté, notamment la librairie d’parsing de ligne de commande de choix pour OpenJDK .

En outre, comme Brett l’a mentionné, la complétion de tabulation est généralement fournie par votre shell – vous écrirez des fonctions de shell pour fournir la fonctionnalité souhaitée.

ps Désolé pour la réponse en double, mais cette question est presque identique à la bibliothèque Java pour parsingr les parameters de ligne de commande?

J’ai utilisé JSAP . Je l’ai trouvé stable et bien documenté.

Je ne suis pas sûr de comprendre ce que vous entendez par «achèvement du TAB intégré». Peux-tu élaborer.

J’ai essayé quelques bibliothèques et j’ai fini par utiliser argparse4j . C’est un très bon port Java pour l’ argument de Python.