Apache Commons CLI (Command Line Interface) হল একটি ওপেন-সোর্স Java লাইব্রেরি, যা কমান্ড-লাইন অপশন বা আর্গুমেন্টের পার্সিং এবং হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। এটি অ্যাপ্লিকেশনগুলিতে কমান্ড-লাইন আর্গুমেন্টগুলি প্রক্রিয়া করার জন্য একটি সোজা, নমনীয়, এবং শক্তিশালী উপায় প্রদান করে। কমান্ড-লাইন আর্গুমেন্টগুলির মাধ্যমে ইউজার অ্যাপ্লিকেশনটি নিয়ন্ত্রণ করতে পারে, যেমন কনফিগারেশন অপশন প্রদান, ফাইল ইনপুট আউটপুট, ডিবাগিং এবং অন্যান্য ফিচার অ্যাক্সেস করা।
Apache Commons CLI এর বৈশিষ্ট্য:
- কমান্ড-লাইন আর্গুমেন্ট পার্সিং: ব্যবহারকারীরা কমান্ড-লাইন থেকে আর্গুমেন্ট দিয়ে অ্যাপ্লিকেশনটি কনফিগার এবং নিয়ন্ত্রণ করতে পারেন। Apache Commons CLI এই আর্গুমেন্টগুলো সহজে পার্স করতে সহায়তা করে।
- অপশন এবং আর্গুমেন্ট সেটআপ: এটি ইউজার থেকে ইনপুট গ্রহণের জন্য বিভিন্ন ধরনের অপশন যেমন স্বল্প ও দীর্ঘ অপশন (short and long options), অপশন সহ বা ছাড়া আর্গুমেন্ট (optional or required arguments) সাপোর্ট করে।
- বিভিন্ন ধরণের অপশন সমর্থন: এটি স্বল্প আকারের অপশন (e.g.,
-h), দীর্ঘ আকারের অপশন (e.g.,--help), এবং প্যারামিটার সহ অপশন (e.g.,-f filenameor--file filename) সমর্থন করে। - প্যারামিটার হ্যান্ডলিং: Apache Commons CLI ব্যবহারকারী থেকে প্যারামিটার গ্রহণ এবং প্রক্রিয়া করতে খুব সহজ করে তোলে।
- ইনবিল্ট ভ্যালিডেশন: CLI আর্গুমেন্টগুলির জন্য ইনবিল্ট ভ্যালিডেশন মেকানিজম রয়েছে যা ভুল বা অসম্পূর্ণ ইনপুট সনাক্ত করতে সাহায্য করে।
- অফিশিয়াল ডকুমেন্টেশন ও সাপোর্ট: Apache Commons CLI একটি প্রমিনেন্ট লাইব্রেরি হওয়ায়, এটি ভালো ডকুমেন্টেশন এবং সমর্থন পেয়ে থাকে।
Apache Commons CLI এর ব্যবহার
Apache Commons CLI লাইব্রেরি ব্যবহার করে একটি সাধারণ কমান্ড-লাইন ইন্টারফেস অ্যাপ্লিকেশন তৈরি করা যেতে পারে। এখানে একটি উদাহরণ দেওয়া হলো যেখানে CLI এর মাধ্যমে কিছু অপশন এবং আর্গুমেন্ট পার্স করা হচ্ছে।
১. Maven Dependency:
প্রথমে, Maven প্রোজেক্টে Apache Commons CLI যুক্ত করতে pom.xml ফাইলে নিচের ডিপেন্ডেন্সি যুক্ত করুন:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
২. Apache Commons CLI ব্যবহার করে কমান্ড-লাইন অপশন পার্সিং:
import org.apache.commons.cli.*;
public class CliExample {
public static void main(String[] args) {
// কনফিগারেশন এবং অপশন তৈরি
Options options = new Options();
// অপশন যোগ করা
Option helpOption = new Option("h", "help", false, "Show help message");
options.addOption(helpOption);
Option fileOption = new Option("f", "file", true, "Input file name");
options.addOption(fileOption);
// কমান্ড-লাইন আর্গুমেন্ট পার্সিং
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
cmd = parser.parse(options, args);
// হেল্প অপশন চেক করা
if (cmd.hasOption("h")) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CLI Application", options);
return;
}
// ফাইল অপশন চেক করা
if (cmd.hasOption("f")) {
String fileName = cmd.getOptionValue("f");
System.out.println("File to process: " + fileName);
}
} catch (ParseException e) {
System.err.println("Parsing failed: " + e.getMessage());
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CLI Application", options);
}
}
}
ব্যাখ্যা:
- Options Object: প্রথমে
Optionsঅবজেক্ট তৈরি করা হয় যা কমান্ড-লাইন অপশনগুলোর কনফিগারেশন ধারণ করে। - Option Object:
Optionঅবজেক্ট ব্যবহার করে অপশন তৈরি করা হয়, যেমন-hবা-f। এখানে-hহেল্প অপশন, এবং-fফাইল অপশন। - CommandLineParser:
CommandLineParserক্লাসের মাধ্যমে অপশনগুলি পার্স করা হয়। এখানেDefaultParserব্যবহার করা হয়েছে। - HelpFormatter: যখন হেল্প অপশন (
-h) নির্বাচন করা হয়, তখনHelpFormatterব্যবহার করে একটি হেল্প মেসেজ প্রদর্শন করা হয়। - Command Line Argument Retrieval: যখন একটি অপশন নির্বাচন করা হয়, যেমন
-f, তখনcmd.getOptionValue()পদ্ধতিটি সেই অপশনের মান (যেমন ফাইলের নাম) ফেরত দেয়।
আউটপুট:
কমান্ডের আর্গুমেন্টের উপর ভিত্তি করে, আউটপুটটি ভিন্ন হতে পারে:
যদি আপনি
-hঅপশন ব্যবহার করেন:java CliExample -hআউটপুট:
CLI Application [options] Options: -h,--help Show help message -f,--file <file> Input file nameযদি আপনি
-fঅপশন ব্যবহার করেন:java CliExample -f input.txtআউটপুট:
File to process: input.txt
সারাংশ
Apache Commons CLI হল একটি শক্তিশালী এবং নমনীয় লাইব্রেরি যা Java অ্যাপ্লিকেশনগুলিতে কমান্ড-লাইন আর্গুমেন্ট প্রোসেসিং এবং অপশন পার্সিংয়ের জন্য ব্যবহৃত হয়। এটি কমান্ড-লাইন থেকে ইনপুট গ্রহণের জন্য বিভিন্ন অপশন এবং আর্গুমেন্টের মাধ্যমে কাস্টমাইজ করা যায়, এবং ইনপুট ভ্যালিডেশন ও সহায়ক হেল্প মেসেজও সরবরাহ করে। Apache Commons CLI ব্যবহার করে কমান্ড-লাইন ভিত্তিক Java অ্যাপ্লিকেশনগুলি তৈরি করা সহজ এবং কার্যকর।
Read more