Apache Commons CLI একটি শক্তিশালী লাইব্রেরি যা কমান্ড লাইন অ্যাপ্লিকেশনগুলিতে আর্গুমেন্ট হ্যান্ডলিং সহজ করে। এটি ব্যবহারকারীদের কমান্ড লাইন আর্গুমেন্টগুলি সহজভাবে পার্স করতে সাহায্য করে, যাতে তারা সফটওয়্যারের কাজ সম্পাদন করতে পারেন। এই লাইব্রেরি একক (single) এবং একাধিক (multiple) আর্গুমেন্টের সঙ্গে কাজ করতে সক্ষম।
এখন আমরা দেখব Single এবং Multiple Arguments এর ধারণা এবং Apache Commons CLI ব্যবহার করে এগুলোর প্রক্রিয়া কিভাবে করা হয়।
Single Argument
Single argument হল একটি একক মান বা অপশন যা কমান্ড লাইন থেকে একটি নির্দিষ্ট ইনপুট গ্রহণ করে। এটি সাধারণত একটি ফ্ল্যাগ বা টোকেন হিসেবে ব্যবহৃত হয়, যেমন একটি ফাইল পাথ, একটি নম্বর, বা অন্য কোনো সাধারণ মান।
Apache Commons CLI এর সাহায্যে single argument সঠিকভাবে পার্স করা সম্ভব, এবং এটি একটি নির্দিষ্ট অপশন বা ফ্ল্যাগের সাথে সম্পর্কিত থাকে।
উদাহরণ: Single Argument
ধরি, আপনি একটি কমান্ড লাইন অ্যাপ্লিকেশন তৈরি করছেন যা ব্যবহারকারীর কাছ থেকে একটি ফাইল পাথ নেয়। এখানে -f অপশন ব্যবহার করা হবে ফাইল পাথ দেওয়ার জন্য।
import org.apache.commons.cli.*;
public class SingleArgumentExample {
public static void main(String[] args) {
// অপশন তৈরি
Options options = new Options();
options.addOption("f", "file", true, "Path to the input file");
// পার্সার তৈরি
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
CommandLine line = parser.parse(options, args);
if (line.hasOption("f")) {
String filePath = line.getOptionValue("f");
System.out.println("File path provided: " + filePath);
} else {
System.out.println("No file path provided.");
}
} catch (ParseException exp) {
System.out.println("Error parsing the command line: " + exp.getMessage());
formatter.printHelp("SingleArgumentExample", options);
}
}
}
আউটপুট:
java SingleArgumentExample -f /path/to/file
File path provided: /path/to/file
এখানে, -f অপশন ব্যবহার করে ব্যবহারকারী ফাইল পাথ প্রদান করছে, এবং সেই পাথটি পার্স করা হচ্ছে।
Multiple Arguments
Multiple arguments ব্যবহারকারীকে একাধিক আর্গুমেন্ট প্রদান করার সুযোগ দেয়। উদাহরণস্বরূপ, যখন আপনি একাধিক ফাইল পাথ, সংখ্যা, বা অন্য কিছু ইনপুট চান, তখন multiple arguments ব্যবহার করা হয়। Apache Commons CLI লাইব্রেরি একাধিক আর্গুমেন্টের জন্য আলাদা পার্সিং সমর্থন করে।
এটি varargs (variable arguments) বা multiple options এর মাধ্যমে পরিচালনা করা যায়। আপনি একাধিক মান গ্রহণ করতে পারেন এবং সেগুলোর উপর ভিত্তি করে প্রক্রিয়া চালাতে পারেন।
উদাহরণ: Multiple Arguments
ধরি, আপনি একটি কমান্ড লাইন অ্যাপ্লিকেশন তৈরি করছেন যা ব্যবহারকারীর কাছ থেকে একাধিক ফাইল পাথ নেবে। এখানে -f অপশন ব্যবহার করে একাধিক ফাইল পাথ নেওয়া হবে।
import org.apache.commons.cli.*;
public class MultipleArgumentsExample {
public static void main(String[] args) {
// অপশন তৈরি
Options options = new Options();
options.addOption("f", "file", true, "Path to the input files");
// পার্সার তৈরি
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
// কমান্ড লাইন আর্গুমেন্ট পার্স করা
CommandLine line = parser.parse(options, args);
if (line.hasOption("f")) {
// একাধিক ফাইল পাথ সংগ্রহ করা
String[] filePaths = line.getOptionValues("f");
// ফাইল পাথ গুলি আউটপুট করা
System.out.println("File paths provided:");
for (String path : filePaths) {
System.out.println(path);
}
} else {
System.out.println("No file paths provided.");
}
} catch (ParseException exp) {
System.out.println("Error parsing the command line: " + exp.getMessage());
formatter.printHelp("MultipleArgumentsExample", options);
}
}
}
আউটপুট:
java MultipleArgumentsExample -f /path/to/file1 /path/to/file2
File paths provided:
/path/to/file1
/path/to/file2
এখানে, -f অপশন ব্যবহার করে একাধিক ফাইল পাথ দেওয়া হয়েছে এবং সেগুলো পার্স করে আউটপুট করা হচ্ছে।
Single এবং Multiple Arguments এর মধ্যে পার্থক্য
| Feature | Single Argument | Multiple Arguments |
|---|---|---|
| সংজ্ঞা | একক মান বা অপশন যা ব্যবহারকারী একবার ইনপুট দেয়। | একাধিক মান বা অপশন যা ব্যবহারকারী একাধিকবার ইনপুট দেয়। |
| উদাহরণ | -f /path/to/file | -f /path/to/file1 /path/to/file2 |
| আর্গুমেন্টের সংখ্যা | একমাত্র একটি আর্গুমেন্ট গ্রহণ করা হয়। | একাধিক আর্গুমেন্ট গ্রহণ করা হয়। |
| পদ্ধতি | getOptionValue() ব্যবহার করে একক মান পাওয়া যায়। | getOptionValues() ব্যবহার করে একাধিক মান পাওয়া যায়। |
| ব্যবহার | সাধারণত একক ফাইল পাথ বা নির্দিষ্ট একটি মান দেওয়ার জন্য ব্যবহৃত হয়। | একাধিক ফাইল বা বিভিন্ন ধরণের ইনপুট আর্গুমেন্টের জন্য ব্যবহৃত হয়। |
সারাংশ
Apache Commons CLI লাইব্রেরি single এবং multiple arguments উভয় ধরনের আর্গুমেন্ট হ্যান্ডলিং সহজ করে তোলে। এটি কমান্ড লাইন থেকে আর্গুমেন্টের মান পার্স করতে সহায়তা করে, এবং একক বা একাধিক আর্গুমেন্ট গ্রহণের জন্য উপযুক্ত পদ্ধতি প্রদান করে। একক আর্গুমেন্টের জন্য getOptionValue() এবং একাধিক আর্গুমেন্টের জন্য getOptionValues() মেথড ব্যবহার করা হয়। CLI অ্যাপ্লিকেশনগুলির জন্য Apache Commons CLI একটি অত্যন্ত কার্যকরী এবং শক্তিশালী লাইব্রেরি যা ডেভেলপারদের আর্গুমেন্ট হ্যান্ডলিং সহজ করে তোলে।
Read more