Apache Commons CLI লাইব্রেরি কমান্ড লাইন ইন্টারফেস (CLI) তৈরি করতে ব্যবহৃত হয় এবং এটি Short Options (একক অক্ষরের অপশন) এবং Long Options (পূর্ণ অক্ষরের অপশন) সমর্থন করে। এই অপশনগুলি ব্যবহারকারীদের ইনপুট হিসেবে নির্দিষ্ট আর্গুমেন্ট বা অপশন নির্বাচন করার সুযোগ দেয়, যা অ্যাপ্লিকেশনটির আচরণ কাস্টমাইজ করতে সহায়তা করে।
এখানে Short Options এবং Long Options ব্যবহারের কৌশল দেখানো হবে।
1. Short Options এবং Long Options এর মধ্যে পার্থক্য
- Short Option: একক অক্ষরের অপশন, সাধারণত একটি হাইফেন (-) দিয়ে শুরু হয়। যেমন:
-h,-fইত্যাদি। - Long Option: পূর্ণ শব্দের অপশন, যা দুইটি হাইফেন (--) দিয়ে শুরু হয়। যেমন:
--help,--fileইত্যাদি।
2. Apache Commons CLI এর মাধ্যমে Short এবং Long Options ব্যবহার
এখানে Apache Commons CLI ব্যবহার করে Short Options এবং Long Options এর মাধ্যমে কমান্ড লাইন আর্গুমেন্ট প্রক্রিয়া করার একটি উদাহরণ দেওয়া হলো।
কমান্ড লাইন অপশন কনফিগারেশন
import org.apache.commons.cli.*;
public class CLIExample {
public static void main(String[] args) {
// Create options object
Options options = new Options();
// Add short and long options
options.addOption("h", "help", false, "Show help");
options.addOption("f", "file", true, "Input file");
options.addOption("v", "verbose", false, "Verbose output");
// Create parser
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// Parse the command line arguments
cmd = parser.parse(options, args);
// Check if help option is present
if (cmd.hasOption("h")) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CLIExample", options);
}
// Check for file option and print file value
if (cmd.hasOption("f")) {
System.out.println("File: " + cmd.getOptionValue("f"));
}
// Check for verbose flag
if (cmd.hasOption("v")) {
System.out.println("Verbose mode enabled");
}
} catch (ParseException e) {
System.err.println("Error parsing command line arguments: " + e.getMessage());
}
}
}
ব্যাখ্যা:
- Short Option:
-hঅথবা-fএমন অপশন যা একক অক্ষরের মাধ্যমে নির্দিষ্ট করা হয়।options.addOption("h", "help", false, "Show help");এ-hএবং--helpঅপশন একসাথে তৈরি করা হয়েছে। এই অপশনটি কোনো আর্গুমেন্ট গ্রহণ করে না।options.addOption("f", "file", true, "Input file");এখানে-fএবং--fileঅপশন যোগ করা হয়েছে, যেখানেtrueমানে হল যে এটি একটি আর্গুমেন্ট গ্রহণ করবে।
- Long Option:
--helpএবং--fileঅপশনগুলোকে পূর্ণ শব্দ হিসাবে ব্যবহৃত করা হয়, যা অধিক বোধগম্য এবং পরিষ্কার।
- CommandLineParser:
DefaultParserব্যবহার করে আর্গুমেন্ট পার্স করা হয় এবং পরবর্তী ধাপে কমান্ড লাইনে প্রাপ্ত অপশন অনুযায়ী কার্যক্রম পরিচালনা করা হয়।
- HelpFormatter:
- যদি
-hবা--helpঅপশন দেওয়া হয়, তাহলেHelpFormatterদিয়ে অপশনের সাহায্য নিয়ে হেল্প মেসেজ প্রদর্শন করা হয়।
- যদি
3. Command Line Example
এখন, আমরা যদি উপরের প্রোগ্রামটি কমান্ড লাইনে রান করি, তবে কিছু উদাহরণ দেখানো হবে:
1. হেল্প অপশন ব্যবহার (Short and Long)
Command:
java CLIExample -h
অথবা
java CLIExample --help
Output:
CLIExample [options]
Options:
-h, --help Show help
-f, --file Input file
-v, --verbose Verbose output
2. ফাইল অপশন ব্যবহার (Short and Long)
Command:
java CLIExample -f myfile.txt
অথবা
java CLIExample --file myfile.txt
Output:
File: myfile.txt
3. Verbose Mode ব্যবহার (Short Option)
Command:
java CLIExample -v
Output:
Verbose mode enabled
4. চেকিং Multiple Options
আপনি একাধিক অপশন একসাথে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, -f, -v, এবং -h অপশন একসাথে দেওয়া হতে পারে।
Command:
java CLIExample -f myfile.txt -v
Output:
File: myfile.txt
Verbose mode enabled
এখানে, -v অপশনটি verbose mode সক্ষম করেছে এবং -f অপশনটি ফাইলের নাম দেখিয়েছে।
5. Default Value এবং Conditional Logic
যদি কোনো অপশন না দেওয়া হয়, তবে আপনি default value সেট করতে পারেন এবং আর্গুমেন্ট বা অপশন অনুপস্থিত থাকলে নির্দিষ্ট শর্তে আচরণ পরিবর্তন করতে পারেন।
if (!cmd.hasOption("f")) {
System.out.println("No file provided, using default file.");
}
এটি নিশ্চিত করবে যে যদি -f বা --file অপশনটি না দেওয়া হয়, তাহলে আপনি ডিফল্ট ফাইল ব্যবহার করতে পারবেন।
সারাংশ
Apache Commons CLI লাইব্রেরি ব্যবহার করে আপনি Short Options এবং Long Options যোগ করতে পারবেন এবং ক্লিন ও কার্যকরী CLI ইন্টারফেস তৈরি করতে পারবেন। Options.addOption() এর মাধ্যমে আপনি কমান্ড লাইন অপশন এবং আর্গুমেন্ট সংজ্ঞায়িত করতে পারেন, এবং CommandLineParser ব্যবহার করে সেই অপশনগুলি পার্স করতে পারেন। এই কৌশলগুলো ব্যবহার করে আপনি অ্যাপ্লিকেশনের ফ্লেক্সিবিলিটি এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে পারবেন।
Read more