Czy istnieją dobre biblioteki Java, które ułatwiają budowanie aplikacji wiersza poleceń? [zamknięte]
Muszę napisać prostą aplikację wiersza poleceń w Javie. Byłoby miło użyć biblioteki, która zajmuje się analizowaniem poleceń i zajmuje się takimi rzeczami jak flagi i opcjonalne/obowiązkowe parametry...
UPDATE
Coś, co ma wbudowane wypełnianie kart byłoby szczególnie świetne.
10 answers
Użyłem biblioteki Apache Commons CLI do parsowania argumentów wiersza poleceń. Jest dość łatwy w użyciu i ma dość dobrą dokumentację .
Którą bibliotekę wybierzesz prawdopodobnie sprowadza się do tego, jaki styl opcji preferujesz ("--gnu-style" lub "-javac-style").
Update: picocli tab completion niedawno stało się dostępne i może być interesujące. Brak wiedzy o żadnej innej bibliotece parsowania wiersza poleceń, która zapewnia dopełnienie wiersza poleceń wymagane w OP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-10 11:24:10
JLine wygląda na pomocną.
JLine jest biblioteką Javy do obsługi wejścia konsoli. Jest on podobny funkcjonalnie do BSD editline i GNU readline. Osoby zaznajomione z możliwościami readline/editline dla nowoczesnych powłok (takich jak bash i tcsh) znajdą większość funkcji edycji poleceń JLine za znajomą.
I wypełnia listę tabulatorów w swoich funkcjach .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-23 04:44:30
Ponieważ szukasz biblioteki, która ułatwi tworzenie interaktywnej aplikacji shell, proponuję Cliche .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-07 00:52:20
Spójrz na arg4j .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-12 15:29:22
W naszej firmie używamy JewelCli, który używa przypisanej definicji interfejsu Java do opisu interfejsu wiersza poleceń w stylu deklaratywnym.
Lekki i prosty w obsłudze, polecam.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-12 16:57:19
Używałem Java Simple Argument Parser szeroko. Obsługuje wszystkie typy opcji, ma dobrze zaprojektowaną bibliotekę (w tym opcję pisania niestandardowych parserów) i zapewnia dobrą dokumentację zarówno w JavaDocs, jak i online.
Myślę, że twoim pragnieniem wypełnienia tabulatora byłaby powłoka, a nie biblioteka parsowania wiersza poleceń.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-13 05:05:50
Istnieje port Java biblioteki GNU getopt do parsowania wiersza poleceń. Do edycji poleceń i uzupełniania tabulatorów jest JLine (jak już zalecał mmyers).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-13 04:46:58
Warto też przyjrzeć się --jopt-simple .
Próbuje uszanować składnię opcji linii poleceń POSIX getopt () i GNU getopt_long ().' Wydaje się, że ma pewną społeczność, w szczególności jest lib parsowania linii poleceń wyboru dla OpenJDK.
Również, jak Brett wspomniał, wypełnianie kart jest zazwyczaj dostarczane przez powłokę-piszesz funkcje powłoki, aby zapewnić tę pożądaną funkcjonalność.
P. S. przepraszam za duplikat odpowiedź, ale to pytanie jest prawie identyczne z biblioteką Javy do parsowania parametrów wiersza poleceń?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:49
Użyłem JSAP . Okazało się, że jest stabilny i dobrze udokumentowany.
Nie jestem pewien, czy rozumiem, co masz na myśli przez "wbudowane uzupełnianie kart". Możesz to rozwinąć?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-13 05:10:06
Wypróbowałem kilka bibliotek i skończyło się na argparse4j . Jest to naprawdę ładny port Java Pythona argparse .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-02 16:14:51