Apache Commons CLI একটি Java লাইব্রেরি যা কমান্ড লাইন আর্গুমেন্ট পার্সিং সহজ করে। এটি আপনাকে কমান্ড লাইন আর্গুমেন্টগুলির মধ্যে option তৈরি করতে সহায়তা করে, যা বিভিন্ন প্রকারভেদে হতে পারে, যেমন Required এবং Optional।
এই গাইডে, আমরা আলোচনা করব Option এর বিভিন্ন প্রকারভেদ এবং কীভাবে Required এবং Optional অপশনগুলো ব্যবহার করা যায়।
Option এর প্রকারভেদ
- Required Option: এই ধরনের অপশন অবশ্যই কমান্ড লাইন আর্গুমেন্ট হিসেবে প্রদান করতে হবে। এটি ব্যবহারকারীকে বাধ্য করে আর্গুমেন্ট প্রদান করতে।
- Optional Option: এই ধরনের অপশন দেওয়া হলে আর্গুমেন্ট প্রদান করা আবশ্যক নয়। এটি ব্যবহারকারীকে ঐ অপশনটি বাদ দেওয়ার স্বাধীনতা দেয়।
Required Option
Required Option এমন একটি অপশন যা ব্যবহারকারীকে কমান্ড লাইন ইনপুটে অবশ্যই দিতে হবে। যদি এটি না দেওয়া হয়, তাহলে ParseException ঘটবে বা HelpFormatter ব্যবহার করে সাহায্য প্রদর্শিত হবে।
Required Option তৈরি করা
import org.apache.commons.cli.*;
public class CLIExample {
public static void main(String[] args) {
// Option তৈরি করা
Options options = new Options();
// 'input' অপশন তৈরি করা যা Required
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // এটি একটি Required অপশন
options.addOption(input);
// 'output' অপশন তৈরি করা যা Optional
Option output = new Option("o", "output", true, "Output file");
output.setRequired(false); // এটি একটি Optional অপশন
options.addOption(output);
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) {
// ভুল আর্গুমেন্ট দেয়ার ক্ষেত্রে Help দেখানো
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CLIExample", options);
}
}
}
ব্যাখ্যা:
inputঅপশনটি required করা হয়েছে। অর্থাৎ, যদি এটি না দেয়া হয়, তাহলে কমান্ড লাইন আর্গুমেন্টের মধ্যে এটি থাকা বাধ্যতামূলক।outputঅপশনটি optional করা হয়েছে। এটি দেয়া হলে কার্যকর হবে, কিন্তু না দিলে সমস্যা হবে না।
Example:
java CLIExample -i input.txt -o output.txt
যদি আপনি -i অপশনটি বাদ দেন, তাহলে HelpFormatter সাহায্য প্রদর্শন করবে।
Optional Option
Optional Option এমন একটি অপশন যা আর্গুমেন্ট হিসেবে প্রদান করা আবশ্যক নয়। এটি ব্যবহারকারীর সুবিধা অনুযায়ী দেয়া হতে পারে অথবা বাদ দেয়া যেতে পারে।
Optional Option তৈরি করা
import org.apache.commons.cli.*;
public class CLIExample {
public static void main(String[] args) {
// Option তৈরি করা
Options options = new Options();
// 'input' অপশন তৈরি করা যা Required
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // এটি একটি Required অপশন
options.addOption(input);
// 'output' অপশন তৈরি করা যা Optional
Option output = new Option("o", "output", true, "Output file");
output.setRequired(false); // এটি একটি Optional অপশন
options.addOption(output);
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) {
// ভুল আর্গুমেন্ট দেয়ার ক্ষেত্রে Help দেখানো
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CLIExample", options);
}
}
}
ব্যাখ্যা:
inputঅপশনটি required করা হয়েছে, যা কমান্ডে প্রদান করা বাধ্যতামূলক।outputঅপশনটি optional করা হয়েছে, যা প্রদান না করলেও প্রোগ্রাম সঠিকভাবে কাজ করবে।
Example:
java CLIExample -i input.txt
এখানে output অপশন বাদ দিলেও কিছু সমস্যা হবে না, কারণ এটি optional।
HelpFormatter ব্যবহার
যখন কোনও Required অপশন সরানো হয়, তখন HelpFormatter ব্যবহার করে ব্যবহারকারীর জন্য সাহায্য প্রদর্শন করা যায়। এটি কমান্ড লাইনে সঠিক আর্গুমেন্ট ও অপশন দেখাবে।
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CLIExample", options);
এটি CLIExample প্রোগ্রামটির জন্য সঠিক কমান্ড এবং আর্গুমেন্টের উদাহরণ দেখাবে, যেমন:
CLIExample -i input -o output
-i,--input Input file
-o,--output Output file
সারাংশ
Apache Commons CLI লাইব্রেরি ব্যবহার করে আপনি Required এবং Optional অপশনগুলি সহজে তৈরি করতে পারেন। Required অপশন ব্যবহারকারীকে আর্গুমেন্ট প্রদান করতে বাধ্য করে, যা কমান্ড লাইন ইনপুটের জন্য অপরিহার্য। অন্যদিকে, Optional অপশন ব্যবহারকারীকে ঐ আর্গুমেন্টটি প্রদান করতে স্বাধীনতা দেয়। এই দুটি অপশন ব্যবহার করার মাধ্যমে আপনি আপনার কমান্ড লাইন অ্যাপ্লিকেশনকে আরো ফ্লেক্সিবল এবং ব্যবহারকারীর জন্য সুবিধাজনক করে তুলতে পারেন।
Read more