Apache Commons CLI একটি জনপ্রিয় Java লাইব্রেরি যা কমান্ড লাইন আর্গুমেন্ট প্রোসেসিং এবং অপশন পার্সিং সহজ করে তোলে। তবে, কিছু ক্ষেত্রে বিকল্প লাইব্রেরি ব্যবহার করা হতে পারে যা একই কাজ করতে সাহায্য করে, এবং হয়তো আরো আধুনিক ফিচার বা সহজ ইন্টিগ্রেশন প্রদান করে। এই গাইডে, আমরা কিছু জনপ্রিয় CLI লাইব্রেরি এবং তাদের আপডেট সম্পর্কে আলোচনা করব।
1. JCommander
JCommander একটি শক্তিশালী এবং সহজ লাইব্রেরি যা কমান্ড লাইন আর্গুমেন্ট পার্স করার জন্য ব্যবহৃত হয়। এটি @Parameter এনোটেশন ব্যবহার করে আর্গুমেন্ট ম্যানেজ করে এবং সহজ API প্রদান করে।
JCommander এর সুবিধা:
- Annotation-based: আর্গুমেন্ট পার্সিং এর জন্য annotation ব্যবহার করে কাজ করা।
- Type conversion: এটি আর্গুমেন্টগুলির type conversion (যেমন String থেকে Integer বা Boolean) সাপোর্ট করে।
- Flexible and simple: জটিল কনফিগারেশন ছাড়াই সহজেই কাজ করা যায়।
JCommander এর ইনস্টলেশন:
Maven পদ্ধতিতে JCommander লাইব্রেরি যুক্ত করতে, pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.78</version> <!-- সর্বশেষ ভার্সন ব্যবহার করুন -->
</dependency>
JCommander উদাহরণ:
import com.beust.jcommander.*;
public class JCommanderExample {
@Parameter(names = "-input", description = "Input file", required = true)
private String inputFile;
@Parameter(names = "-output", description = "Output file")
private String outputFile;
public static void main(String[] args) {
JCommanderExample example = new JCommanderExample();
JCommander.newBuilder()
.addObject(example)
.build()
.parse(args);
System.out.println("Input file: " + example.inputFile);
System.out.println("Output file: " + example.outputFile);
}
}
ব্যাখ্যা:
- এখানে, @Parameter এনোটেশন ব্যবহার করে আমরা আর্গুমেন্টগুলিকে ম্যানেজ করছি।
- JCommander.newBuilder() ব্যবহার করে আর্গুমেন্টগুলো পার্স করা হচ্ছে এবং আউটপুট দেখানো হচ্ছে।
2. Picocli
Picocli একটি শক্তিশালী এবং দ্রুত কমান্ড লাইন আর্গুমেন্ট পার্সিং লাইব্রেরি, যা annotation-based এবং fluent interface প্রদান করে। এটি সমৃদ্ধ ফিচার যেমন subcommands, file redirection, tab-completion ইত্যাদি সাপোর্ট করে।
Picocli এর সুবিধা:
- Annotation-based API।
- Subcommands সাপোর্ট।
- খুবই দ্রুত এবং কার্যকরী।
- Multi-platform সাপোর্ট (যেমন, Windows, Linux, MacOS)।
Picocli এর ইনস্টলেশন:
Maven পদ্ধতিতে Picocli লাইব্রেরি যুক্ত করতে, pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>4.6.3</version>
</dependency>
Picocli উদাহরণ:
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
@Command(name = "PicocliExample", mixinStandardHelpOptions = true, version = "1.0")
public class PicocliExample implements Runnable {
@Option(names = {"-i", "--input"}, description = "Input file", required = true)
private String inputFile;
@Option(names = {"-o", "--output"}, description = "Output file")
private String outputFile;
public static void main(String[] args) {
CommandLine.run(new PicocliExample(), args);
}
@Override
public void run() {
System.out.println("Input file: " + inputFile);
System.out.println("Output file: " + outputFile);
}
}
ব্যাখ্যা:
- এখানে @Command এবং @Option এনোটেশন ব্যবহার করে কমান্ড এবং আর্গুমেন্ট ডিফাইন করা হয়েছে।
- CommandLine.run() মেথড দিয়ে কোডটি চালানো হচ্ছে।
3. args4j
args4j একটি ছোট এবং সহজ লাইব্রেরি যা Java কমান্ড লাইন আর্গুমেন্ট হ্যান্ডলিং সহজ করে। এটি annotation-based এবং সহজেই কাস্টম কমান্ড এবং আর্গুমেন্ট ম্যানেজ করতে সাহায্য করে।
args4j এর সুবিধা:
- Lightweight এবং easy to use।
- কমপ্লেক্স কনফিগারেশন ছাড়াই সরল এবং দ্রুত আর্গুমেন্ট পার্সিং।
- Minimal setup।
args4j ইনস্টলেশন:
Maven দিয়ে args4j লাইব্রেরি যোগ করতে, pom.xml ফাইলে নিচের ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>args4j</artifactId>
<version>2.33</version>
</dependency>
args4j উদাহরণ:
import org.kohsuke.args4j.*;
public class Args4jExample {
@Option(name = "-i", usage = "Input file", required = true)
private String inputFile;
@Option(name = "-o", usage = "Output file")
private String outputFile;
public static void main(String[] args) {
Args4jExample example = new Args4jExample();
CmdLineParser parser = new CmdLineParser(example);
try {
parser.parseArgument(args);
System.out.println("Input file: " + example.inputFile);
System.out.println("Output file: " + example.outputFile);
} catch (CmdLineException e) {
System.err.println(e.getMessage());
System.err.println("java Args4jExample -i <input> -o <output>");
}
}
}
ব্যাখ্যা:
- এখানে @Option এনোটেশন ব্যবহার করে আর্গুমেন্টগুলো ম্যানেজ করা হচ্ছে।
- CmdLineParser ব্যবহার করে আর্গুমেন্ট পার্স করা হচ্ছে।
4. Minimun CLI (MinCLI)
MinCLI একটি ছোট এবং কমপ্লেক্সিটি মুক্ত কমান্ড লাইন লাইব্রেরি যা CLI আর্গুমেন্ট পার্সিং খুব সহজে পরিচালনা করে।
MinCLI এর সুবিধা:
- ছোট আকার এবং খুব দ্রুত।
- খুব সহজ এবং সরল আর্গুমেন্ট পার্সিং।
MinCLI ইনস্টলেশন:
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mincli</artifactId>
<version>1.0.0</version>
</dependency>
সারাংশ
Apache Commons CLI একটি শক্তিশালী এবং জনপ্রিয় লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট প্রোসেসিংয়ের জন্য, তবে অন্যান্য লাইব্রেরিও রয়েছে যেগুলি একই কাজের জন্য ব্যবহৃত হতে পারে। আপনি JCommander, Picocli, args4j, এবং MinCLI এর মতো লাইব্রেরিগুলি ব্যবহার করতে পারেন আপনার প্রয়োজন অনুযায়ী।
- JCommander এবং Picocli আধুনিক এবং বেশি ফিচারযুক্ত লাইব্রেরি, যা বড় এবং জটিল প্রোজেক্টে সুবিধা দেয়।
- args4j এবং MinCLI কমপ্লেক্সিটি কম এবং ছোট প্রোজেক্টের জন্য উপযুক্ত।
আপনার প্রয়োজনের ভিত্তিতে এগুলোর মধ্যে যে কোন একটি লাইব্রেরি বেছে নিতে পারেন।
Read more