Apache Commons CLI লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট পার্সিংয়ের জন্য খুবই জনপ্রিয়। এটি কমান্ড লাইন আর্গুমেন্ট এবং অপশনগুলির সাথে যুক্ত তথ্য পরিচালনা করার জন্য একটি সহজ পদ্ধতি সরবরাহ করে। কমান্ড লাইন আর্গুমেন্টের সাথে Option এর মাধ্যমে যুক্ত আর্গুমেন্ট যোগ করা অত্যন্ত সহজ।
এখানে আমরা দেখবো কিভাবে Option এর সাথে আর্গুমেন্ট যুক্ত করা যায় এবং কীভাবে সেই আর্গুমেন্টকে প্রসেস করা হয়।
1. Option এর সাথে Arguments যোগ করা
Option হল কমান্ড লাইন আর্গুমেন্টের জন্য একটি নির্দিষ্ট অপশন বা পতাকা (flag)। প্রতিটি Option এর সাথে সাধারণত দুটি ব্যাপার থাকে:
- মুল্য (Value) : যেটি অপশনের সাথে যুক্ত থাকে, যেমন নাম বা বয়স।
- বৈশিষ্ট্য (Attributes) : অপশনের সাথে বিভিন্ন বৈশিষ্ট্য, যেমন
required,hasArgইত্যাদি।
1.1. Option তৈরি করা এবং আর্গুমেন্ট যোগ করা
আপনি যদি একটি অপশন তৈরি করতে চান যা আর্গুমেন্ট গ্রহণ করবে, তবে hasArg(true) মেথডটি ব্যবহার করতে হবে।
উদাহরণ: Option এর সাথে আর্গুমেন্ট যোগ করা
import org.apache.commons.cli.*;
public class CommandLineExample {
public static void main(String[] args) {
// Option এর জন্য একটি Options অবজেক্ট তৈরি করা
Options options = new Options();
// --name অপশন তৈরি করা, যা আর্গুমেন্ট গ্রহণ করবে (hasArg(true))
options.addOption("n", "name", true, "Your name");
// --age অপশন তৈরি করা, যা আর্গুমেন্ট গ্রহণ করবে (hasArg(true))
options.addOption("a", "age", true, "Your age");
// --help অপশন তৈরি করা, যা আর্গুমেন্ট গ্রহণ করবে না (hasArg(false))
options.addOption("h", "help", false, "Show help");
// CommandLineParser তৈরি করা
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// --help অপশন চেক করা
if (cmd.hasOption("h")) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CommandLineExample", options);
System.exit(0);
}
// --name অপশনের আর্গুমেন্ট প্রিন্ট করা
if (cmd.hasOption("n")) {
String name = cmd.getOptionValue("n");
System.out.println("Hello, " + name + "!");
}
// --age অপশনের আর্গুমেন্ট প্রিন্ট করা
if (cmd.hasOption("a")) {
String age = cmd.getOptionValue("a");
System.out.println("Your age is " + age);
}
} catch (ParseException e) {
System.out.println("Parsing failed. Reason: " + e.getMessage());
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CommandLineExample", options);
}
}
}
ব্যাখ্যা:
- Options: এটি কমান্ড লাইন আর্গুমেন্টের অপশনগুলির জন্য ব্যবহৃত হয়। এখানে
--name,--ageএবং--helpঅপশনগুলো তৈরি করা হয়েছে।hasArg(true): এটি নির্দেশ করে যে অপশনটি একটি আর্গুমেন্ট গ্রহণ করবে।hasArg(false): এটি নির্দেশ করে যে অপশনটি কোনো আর্গুমেন্ট গ্রহণ করবে না (যেমন--helpঅপশনটি)।
- CommandLineParser: এটি কমান্ড লাইন আর্গুমেন্ট পার্স করার জন্য ব্যবহৃত হয়। এখানে আমরা
DefaultParserব্যবহার করেছি। - cmd.getOptionValue(): এটি অপশনের সাথে যুক্ত আর্গুমেন্টের মান বের করার জন্য ব্যবহৃত হয়।
2. কমান্ড লাইন আর্গুমেন্ট ব্যবহার
এই কোডটি চালানোর সময় আপনি কমান্ড লাইন থেকে আর্গুমেন্ট পাঠাতে পারবেন। এখানে কয়েকটি উদাহরণ দেওয়া হলো:
উদাহরণ 1: নাম এবং বয়স সহ
java CommandLineExample -n John -a 25
আউটপুট:
Hello, John!
Your age is 25
উদাহরণ 2: হেল্প দেখানো
java CommandLineExample -h
আউটপুট:
Usage: CommandLineExample
-a <age> Your age
-h, --help Show help
-n <name> Your name
উদাহরণ 3: শুধুমাত্র নাম সহ
java CommandLineExample -n Jane
আউটপুট:
Hello, Jane!
3. এরর হ্যান্ডলিং
যদি কমান্ড লাইন আর্গুমেন্টে কোনো ভুল থাকে, তবে ব্যবহারকারীর জন্য একটি সাহায্য বার্তা প্রদর্শন করা উচিত। এর জন্য HelpFormatter ব্যবহার করা হয়, যা কমান্ড লাইন আর্গুমেন্টের সাহায্য প্রদর্শন করে।
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CommandLineExample", options);
এটি সঠিক আর্গুমেন্ট গুলো এবং তাদের ব্যাখ্যা দেখাবে।
সারাংশ
Apache Commons CLI লাইব্রেরি Option এর মাধ্যমে কমান্ড লাইন আর্গুমেন্ট গ্রহণ এবং প্রক্রিয়া করার একটি সহজ এবং কার্যকরী উপায় সরবরাহ করে। Option এর সাথে আর্গুমেন্ট যোগ করতে hasArg(true) ব্যবহার করতে হয় এবং cmd.getOptionValue() মেথডের মাধ্যমে আর্গুমেন্টের মান বের করা হয়। এই লাইব্রেরিটি কাস্টম কমান্ড লাইন আর্গুমেন্ট পার্সিংয়ের জন্য খুবই উপকারী এবং সাহায্যকারী।
Read more