Apache Commons CLI লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট প্রোসেসিং সহজ করে তোলে। CommandLineParser ইন্টারফেসটি কমান্ড লাইন আর্গুমেন্টগুলোকে একটি নির্দিষ্ট কাঠামোতে পার্স করতে ব্যবহৃত হয়। এটি আপনাকে কমান্ড লাইন আর্গুমেন্টের মধ্যে বিভিন্ন options এবং arguments সঠিকভাবে প্রক্রিয়া করতে সাহায্য করে।
এখানে, আমরা CommandLineParser ইন্টারফেসের মাধ্যমে কমান্ড লাইন আর্গুমেন্ট পার্স করার পদ্ধতি দেখব।
CommandLineParser Interface কী?
CommandLineParser ইন্টারফেসটি Apache Commons CLI লাইব্রেরির একটি অংশ, যা আর্গুমেন্ট পার্সিংয়ের জন্য ব্যবহৃত হয়। এটি কমান্ড লাইন আর্গুমেন্টগুলিকে Options অবজেক্টে রূপান্তর করে, যাতে আমরা সহজে সেগুলিকে অ্যাক্সেস এবং ব্যবহার করতে পারি।
এই ইন্টারফেসের দুটি গুরুত্বপূর্ণ ইমপ্লিমেন্টেশন হল:
- DefaultParser: এটি একটি সাধারণ পার্সার যা সবচেয়ে বেশি ব্যবহৃত হয়।
- GnuParser: এটি GNU-style অপশন (যেমন,
--option=value) সমর্থন করে।
CommandLineParser Interface এর মাধ্যমে Argument Parsing
এই অংশে আমরা DefaultParser ব্যবহার করে একটি কমান্ড লাইন অ্যাপ্লিকেশনে আর্গুমেন্ট পার্স করব।
ধাপ 1: Apache Commons CLI লাইব্রেরি অন্তর্ভুক্ত করা
প্রথমে, Maven ব্যবহার করে আপনার প্রোজেক্টে Apache Commons CLI লাইব্রেরি অন্তর্ভুক্ত করতে হবে। আপনার pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
ধাপ 2: CommandLineParser Interface ব্যবহার করে Argument Parsing উদাহরণ
import org.apache.commons.cli.*;
public class CommandLineParserExample {
public static void main(String[] args) {
// Option তৈরি করা
Options options = new Options();
// 'input' অপশন তৈরি করা
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // এটি একটি Required অপশন
options.addOption(input);
// 'output' অপশন তৈরি করা
Option output = new Option("o", "output", true, "Output file");
output.setRequired(false); // এটি একটি Optional অপশন
options.addOption(output);
// CommandLineParser তৈরি করা (DefaultParser)
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// 'input' অপশন চেক করা
if (cmd.hasOption("input")) {
System.out.println("Input file: " + cmd.getOptionValue("input"));
}
// 'output' অপশন চেক করা
if (cmd.hasOption("output")) {
System.out.println("Output file: " + cmd.getOptionValue("output"));
}
} catch (ParseException e) {
// যদি কোনো ভুল আর্গুমেন্ট দেওয়া হয়, তাহলে HelpFormatter ব্যবহার করা
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CommandLineParserExample", options);
}
}
}
ব্যাখ্যা:
- Options: এখানে আমরা দুটি অপশন তৈরি করেছি:
input(যা অবশ্যই দিতে হবে) এবংoutput(যা Optional)। - CommandLineParser: DefaultParser ইমপ্লিমেন্টেশন ব্যবহার করে আর্গুমেন্টগুলো পার্স করা হচ্ছে।
- CommandLine: এটি আর্গুমেন্টগুলো ধারণ করবে এবং
getOptionValue()মেথডের মাধ্যমে আমরা তাদের মান বের করব। - HelpFormatter: যদি ব্যবহারকারী ভুল আর্গুমেন্ট দেয়, তাহলে এই ক্লাসের মাধ্যমে সাহায্য দেখানো হবে।
ধাপ 3: কমান্ড লাইন আর্গুমেন্টের সাথে রান করা
ধরা যাক, এই প্রোগ্রামটি CommandLineParserExample নামে সংরক্ষিত রয়েছে। আপনি যদি কমান্ড লাইন থেকে এটি রান করেন:
java CommandLineParserExample -i input.txt -o output.txt
আউটপুট:
Input file: input.txt
Output file: output.txt
যদি আপনি -i অপশনটি বাদ দেন, তাহলে HelpFormatter সাহায্য প্রদর্শন করবে:
java CommandLineParserExample -o output.txt
আউটপুট:
Usage: CommandLineParserExample
-i,--input <arg> Input file
-o,--output <arg> Output file
CommandLineParser এর অন্যান্য ইমপ্লিমেন্টেশন
GnuParser: যদি আপনি GNU-style অপশন পছন্দ করেন, যেমন --input=input.txt, তাহলে আপনি GnuParser ব্যবহার করতে পারেন।
CommandLineParser parser = new GnuParser();
এটি --option=value স্টাইলে আর্গুমেন্ট গ্রহণ করবে।
সারাংশ
CommandLineParser ইন্টারফেস ব্যবহার করে কমান্ড লাইন আর্গুমেন্ট পার্স করা একটি সহজ এবং কার্যকরী প্রক্রিয়া। আপনি DefaultParser ব্যবহার করে সাধারণ আর্গুমেন্ট পার্সিং করতে পারেন এবং GnuParser ব্যবহার করে GNU-style অপশন সমর্থন করতে পারেন। Options এবং CommandLine অবজেক্টের মাধ্যমে আপনি আর্গুমেন্টগুলির মান সংগ্রহ এবং যাচাই করতে পারবেন।
Read more