Java के लिए CLI फ्रेमवर्क: Picocli, JCommander और Spring Shell

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Java के लिए CLI फ्रेमवर्क: शक्तिशाली कंसोल एप्लिकेशन बनाना

\n

Java सर्वर-साइड एप्लिकेशन बनाने के लिए सबसे लोकप्रिय भाषाओं में से एक बना हुआ है, लेकिन इस पर कंसोल यूटिलिटीज भी नियमित रूप से लिखी जाती हैं। हालांकि, args[] के माध्यम से कमांड लाइन आर्गुमेंट्स का मैन्युअल पार्सिंग, विकल्पों, फ्लैग्स और नेस्टेड कमांड के आने पर जल्दी ही अव्यवस्था में बदल जाता है। विशेष CLI-फ्रेमवर्क मदद के लिए आते हैं। इस लेख में, हम तीन प्रमुख टूल्स पर विचार करेंगे: Picocli, JCommander और Spring Shell। आप उनकी विशेषताओं को जानेंगे, कोड उदाहरण देखेंगे और अपने प्रोजेक्ट के लिए उपयुक्त चुन सकेंगे।

\n\n

1. Picocli — आधुनिक और उच्च प्रदर्शन वाला

\n

Picocli (उच्चारण "पाइक-क्ली") न्यूनतम निर्भरता वाला एक हल्का फ्रेमवर्क है। यह एनोटेशन, शेल में ऑटो-कम्प्लीशन, नेस्टेड कमांड और यहां तक कि man-पेज प्रारूप में सहायता उत्पन्न करने का समर्थन करता है। Picocli सरल यूटिलिटीज से लेकर जटिल मल्टी-लेवल CLI बनाने के लिए आदर्श है।

\n\n

Picocli के साथ एक बुनियादी कैलकुलेटर का उदाहरण:

\n
import picocli.CommandLine;\nimport picocli.CommandLine.Command;\nimport picocli.CommandLine.Option;\nimport picocli.CommandLine.Parameters;\n\n@Command(name = "calc", mixinStandardHelpOptions = true, version = "1.0",\n         description = "सरल कैलकुलेटर")\npublic class Calculator implements Runnable {\n\n    @Parameters(index = "0", description = "पहली संख्या")\n    private double a;\n\n    @Parameters(index = "1", description = "दूसरी संख्या")\n    private double b;\n\n    @Option(names = {"-o", "--operation"}, defaultValue = "+",\n            description = "संक्रिया: +, -, *, /")\n    private String operation;\n\n    @Override\n    public void run() {\n        double result = switch (operation) {\n            case "+" -> a + b;\n            case "-" -> a - b;\n            case "*" -> a * b;\n            case "/" -> a / b;\n            default -> throw new IllegalArgumentException("अज्ञात संक्रिया: " + operation);\n        };\n        System.out.printf("परिणाम: %.2f%n", result);\n    }\n\n    public static void main(String[] args) {\n        int exitCode = new CommandLine(new Calculator()).execute(args);\n        System.exit(exitCode);\n    }\n}
\n

रन करें: java Calculator 10 5 -o "*" आउटपुट देगा परिणाम: 50.00। Picocli स्वचालित रूप से --help पर सहायता और --version पर संस्करण उत्पन्न करेगा।

\n\n

2. JCommander — समय-परीक्षित

\n

JCommander Java में आर्गुमेंट पार्स करने के लिए सबसे पुरानी लाइब्रेरी में से एक है। यह एनोटेशन का उपयोग करता है, लेकिन पार्सिंग पर अधिक मैन्युअल नियंत्रण प्रदान करता है। JCommander को अक्सर उन प्रोजेक्ट्स के लिए चुना जाता है जहां लचीलापन और मौजूदा कोड के साथ एकीकरण की आवश्यकता होती है।

\n\n

JCommander के साथ मुद्रा परिवर्तक का उदाहरण:

\n
import com.beust.jcommander.JCommander;\nimport com.beust.jcommander.Parameter;\nimport com.beust.jcommander.Parameters;\n\n@Parameters(commandDescription = "मुद्रा परिवर्तक")\npublic class CurrencyConverter {\n\n    @Parameter(names = {"--amount", "-a"}, description = "राशि", required = true)\n    private Double amount;\n\n    @Parameter(names = {"--from", "-f"}, description = "किस मुद्रा से (USD, EUR)", required = true)\n    private String from;\n\n    @Parameter(names = {"--to", "-t"}, description = "किस मुद्रा में", required = true)\n    private String to;\n\n    @Parameter(names = {"--help", "-h"}, help = true, description = "सहायता दिखाएँ")\n    private boolean help;\n\n    public void run() {\n        if (help) {\n            JCommander jc = new JCommander(this);\n            jc.usage();\n            return;\n        }\n        // सरलीकृत रूपांतरण तर्क\n        double rate = switch (from.toUpperCase() + "_" + to.toUpperCase()) {\n            case "USD_EUR" -> 0.92;\n            case "EUR_USD" -> 1.09;\n            default -> 1.0;\n        };\n        System.out.printf("%.2f %s = %.2f %s%n", amount, from.toUpperCase(), amoun                    

अनुशंसाएँ