Command Line Option কি?
Command Line Option (CLI Option) হল এমন একটি উপাদান যা ব্যবহারকারীদের কমান্ড লাইনে ইনপুট প্রদানের জন্য ব্যবহৃত হয়। এটি একটি প্যারামিটার বা পতাকা (flag) যা কমান্ড লাইন আর্গুমেন্ট হিসেবে প্রোগ্রামে পাঠানো হয়। সাধারণত, এটি প্রোগ্রামের কার্যকারিতা বা আচরণ নির্ধারণ করতে ব্যবহৃত হয়।
Apache Commons CLI লাইব্রেরি ব্যবহার করে, আপনি সহজে কমান্ড লাইন অপশন তৈরি করতে পারেন এবং সেই অপশনগুলির মান পেতে পারেন। সাধারণত, একটি অপশন হতে পারে একটি একক অক্ষর বা পূর্ণ শব্দ, এবং এটি ইউজারের ইনপুট থেকে পার্স করা হয়।
উদাহরণস্বরূপ:
-fবা--file: ফাইল পাথ নেওয়ার জন্য।-vবা--verbose: লগিং বা ডিবাগging সক্রিয় করার জন্য।
Command Line Option কিভাবে তৈরি করবেন
Apache Commons CLI লাইব্রেরি ব্যবহার করে Command Line Options তৈরি এবং ব্যবহারের পদ্ধতি নিচে বিস্তারিতভাবে আলোচনা করা হয়েছে।
1. Apache Commons CLI সেটআপ
প্রথমে, Apache Commons CLI লাইব্রেরিটি আপনার প্রকল্পে যোগ করতে হবে। যদি আপনি Maven ব্যবহার করেন, তাহলে pom.xml ফাইলে নিচের ডিপেনডেন্সি যুক্ত করুন:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-cli</artifactId>
<version>1.5.0</version> <!-- সর্বশেষ ভার্সন চেক করুন -->
</dependency>
অথবা Gradle ব্যবহার করলে, build.gradle ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করুন:
dependencies {
implementation 'org.apache.commons:commons-cli:1.5.0' // সর্বশেষ ভার্সন চেক করুন
}
এছাড়া আপনি JAR ফাইল দিয়েও Apache Commons CLI ইন্সটল করতে পারেন, যা আগের উত্তরে ব্যাখ্যা করা হয়েছে।
2. Command Line Option তৈরি করা
Options ক্লাস ব্যবহার করে আপনি কমান্ড লাইন অপশন তৈরি করতে পারেন। প্রতিটি অপশন একটি পতাকা (flag) এবং এর সাথে একটি সংযুক্ত মান থাকতে পারে। সাধারণত, অপশন দুটি ফর্মে থাকে:
- সংক্ষিপ্ত ফর্ম (যেমন
-f): একক অক্ষর। - পূর্ণ ফর্ম (যেমন
--file): সম্পূর্ণ শব্দ।
উদাহরণ: Command Line Option তৈরি করা
import org.apache.commons.cli.*;
public class CommandLineOptionExample {
public static void main(String[] args) {
// অপশন তৈরি
Options options = new Options();
// সংক্ষিপ্ত অপশন (যেমন -f) এবং তার জন্য একটি মান
options.addOption("f", "file", true, "File path to process");
// পূর্ণ অপশন (যেমন --verbose)
options.addOption("v", "verbose", false, "Enable verbose output");
// কমান্ড লাইন প্যারামিটার পার্স করার জন্য CommandLineParser ব্যবহার করা
CommandLineParser parser = new DefaultParser();
HelpFormatter formatter = new HelpFormatter();
try {
// কমান্ড লাইন অপশন পার্স করা
CommandLine cmd = parser.parse(options, args);
// --file বা -f অপশন থেকে ফাইল পাথ নেওয়া
if (cmd.hasOption("f")) {
String filePath = cmd.getOptionValue("f");
System.out.println("File to process: " + filePath);
}
// --verbose বা -v অপশন থেকে ভের্বোস মোড সক্রিয় করা
if (cmd.hasOption("v")) {
System.out.println("Verbose output enabled");
}
} catch (ParseException e) {
// ভুল অপশন দেওয়ার ক্ষেত্রে
System.out.println("Parsing failed. Reason: " + e.getMessage());
formatter.printHelp("CommandLineOptionExample", options);
}
}
}
3. Option এর মান নেওয়া
আপনি যখন একটি অপশন তৈরি করবেন, তখন আপনি সেই অপশনের সাথে একটি মানও যুক্ত করতে পারবেন। যেমন:
-fবা--fileঅপশনটি ব্যবহারকারী থেকে একটি ফাইল পাথ নিতে পারে।-vবা--verboseঅপশনটি একটি বুলিয়ান (boolean) ভ্যালু হতে পারে যা কমান্ডের আউটপুট ডিবাগিং বা বিস্তারিত লোগ দেখানোর জন্য ব্যবহৃত হয়।
যখন আপনি cmd.getOptionValue("f") ব্যবহার করবেন, এটি আপনাকে -f বা --file অপশনের পরবর্তী আর্গুমেন্ট (যেমন একটি ফাইল পাথ) রিটার্ন করবে। যেহেতু verbose অপশনে কোনো মান নেই, তা শুধুমাত্র সঠিকভাবে উপস্থিত থাকলে সক্রিয় হবে।
4. Help Message প্রদর্শন করা
আপনার অ্যাপ্লিকেশন যদি কোনো ভুল অপশন পায় বা যদি ব্যবহারকারী হেল্প চায়, তবে আপনি HelpFormatter ব্যবহার করে সাহায্য বার্তা প্রদর্শন করতে পারেন। এটি একটি খুব সাধারণ ফিচার যা ব্যবহারকারীদের আপনার কমান্ডের অপশনগুলো সম্পর্কে জানাতে সাহায্য করবে।
উদাহরণ:
formatter.printHelp("CommandLineOptionExample", options);
এটি কমান্ড লাইনে CommandLineOptionExample এর সমস্ত অপশন এবং তাদের বিবরণ দেখাবে।
5. বিভিন্ন ধরণের অপশন তৈরি করা
অপশন যেটি শুধুমাত্র উপস্থিত থাকতে পারে (flag)
আপনি এমন একটি অপশন তৈরি করতে পারেন যেটি শুধুমাত্র উপস্থিত থাকলে কিছু করে, অন্যথায় কিছু না করে (যেমন -v বা --verbose)।
options.addOption(Option.builder("v")
.desc("Enable verbose output")
.build());
এই অপশনটি শুধুমাত্র উপস্থিত থাকলে verbose মোড চালু করবে, আর কিছু না হলে এটি নিষ্ক্রিয় থাকবে।
6. অপশন পার্সিংয়ের ভুল শোধন
আপনি যদি ব্যবহারকারীর পক্ষ থেকে ভুল ইনপুট পান, তবে ParseException এর মাধ্যমে আপনি ত্রুটি ধরতে পারেন এবং সঠিকভাবে হেল্প বার্তা প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, যদি একটি আবশ্যক অপশন (যেমন --file) না দেওয়া হয়, তবে আপনি ব্যবহারকারীকে জানিয়ে দেবেন এবং কিভাবে সঠিকভাবে কমান্ড ব্যবহার করতে হবে তা দেখাবেন।
সারাংশ
Apache Commons CLI ব্যবহার করে আপনি খুব সহজে এবং দ্রুত কমান্ড লাইন অপশন তৈরি করতে পারেন। এটি আপনাকে বিভিন্ন ধরণের অপশন (সংক্ষিপ্ত বা পূর্ণ ফর্ম) তৈরি এবং সেগুলি পার্স করার ক্ষমতা প্রদান করে। অপশন তৈরির সময় আপনি তাদের মানও নির্ধারণ করতে পারেন এবং ব্যবহারকারীর ইনপুট যাচাই করতে পারেন। এই লাইব্রেরি ব্যবহার করে কমান্ড-লাইন অ্যাপ্লিকেশন তৈরি করা অনেক সহজ এবং আরও শক্তিশালী হয়ে ওঠে।
Read more