JAR (Java ARchive) ফাইল হল একটি ফাইল আর্কাইভ যা Java ক্লাস ফাইল, ইমেজ, লাইব্রেরি এবং অন্যান্য রিসোর্স একত্রিত করে একটি একক ফাইলে স্টোর করে। JAR ফাইলটি মূলত ZIP ফাইল ফরম্যাটে সংরক্ষিত থাকে এবং এতে Manifest ফাইলও থাকে, যা ফাইলটির মেটাডেটা (যেমন: তৈরি করা হয়েছে, প্রধান ক্লাস, সংস্করণ ইত্যাদি) ধারণ করে।
Java তে JAR ফাইলের metadata (যেমন: META-INF/MANIFEST.MF) অ্যাক্সেস করতে Java API ব্যবহার করা হয়। বিশেষ করে, java.util.jar প্যাকেজটি JAR ফাইলের মেটাডেটা পেতে সহায়ক হয়।
JAR ফাইলের Metadata কী থাকে?
JAR ফাইলের META-INF/MANIFEST.MF ফাইলে সাধারণত কিছু তথ্য থাকে, যেমন:
- Main-Class: JAR ফাইলটি চালানোর জন্য প্রধান ক্লাসের নাম।
- Version: JAR ফাইলের সংস্করণ।
- Built-By: JAR ফাইলটি তৈরি করেছেন এমন ব্যবহারকারীর নাম।
- Creation-Date: JAR ফাইলটির তৈরি তারিখ।
- Class-Path: অন্যান্য লাইব্রেরি বা ডিপেনডেন্সি ফাইলের পাথ।
JAR ফাইলের Manifest Metadata অ্যাক্সেস করা
Java তে JAR ফাইলের মেটাডেটা অ্যাক্সেস করতে java.util.jar.JarFile এবং java.util.jar.Manifest ক্লাস ব্যবহার করা হয়। এখানে একটি উদাহরণ দেওয়া হলো, যা JAR ফাইলের মেটাডেটা থেকে Main-Class এবং Version তথ্য অ্যাক্সেস করবে।
উদাহরণ: JAR ফাইলের Manifest ফাইল থেকে Metadata অ্যাক্সেস করা
import java.io.*;
import java.util.jar.*;
public class JarMetadataExample {
public static void main(String[] args) {
// JAR ফাইলের পাথ
String jarFilePath = "path/to/your/file.jar";
try {
// JAR ফাইল ওপেন করা
JarFile jarFile = new JarFile(jarFilePath);
// JAR ফাইলের Manifest পেতে
Manifest manifest = jarFile.getManifest();
// Manifest থেকে Metadata পড়া
Attributes attributes = manifest.getMainAttributes();
// "Main-Class" ও "Implementation-Version" অ্যাট্রিবিউট পড়া
String mainClass = attributes.getValue("Main-Class");
String version = attributes.getValue("Implementation-Version");
// ফলাফল আউটপুট করা
System.out.println("Main-Class: " + mainClass);
System.out.println("Version: " + version);
// JAR ফাইল বন্ধ করা
jarFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
JarFileক্লাস: এটি JAR ফাইল ওপেন করতে ব্যবহৃত হয়।Manifestক্লাস: এটি JAR ফাইলেরMETA-INF/MANIFEST.MFফাইলের তথ্য ধারণ করে।getMainAttributes(): এটি Manifest থেকে Main Attributes (যেমন:Main-Class,Implementation-Version, ইত্যাদি) পেতে সাহায্য করে।getValue("Attribute-Name"): এটি ম্যানিফেস্ট থেকে নির্দিষ্ট অ্যাট্রিবিউটের মান অ্যাক্সেস করার জন্য ব্যবহৃত হয়, যেমনMain-ClassবাImplementation-Version।
সাধারণ JAR ম্যানিফেস্ট ফাইলের উদাহরণ (META-INF/MANIFEST.MF):
Manifest-Version: 1.0
Main-Class: com.example.Main
Implementation-Version: 1.0.0
Built-By: JohnDoe
Creation-Date: 2024-12-23
Class-Path: lib/some-library.jar
JAR ফাইলের মেটাডেটার অন্যান্য অ্যাট্রিবিউট:
- Main-Class: JAR ফাইলের প্রধান ক্লাস (যা
java -jarকমান্ডের মাধ্যমে রান হবে)। - Implementation-Version: JAR ফাইলের সংস্করণ।
- Built-By: JAR ফাইলটি তৈরি করা ব্যবহারকারী বা প্রতিষ্ঠানের নাম।
- Creation-Date: JAR ফাইলটি তৈরি হওয়ার তারিখ।
- Class-Path: JAR ফাইলের সাথে যুক্ত লাইব্রেরির পাথ।
JAR ফাইলের মেটাডেটা অ্যাক্সেসের জন্য অন্যান্য টুল:
- Apache Ant এবং Maven এর মতো বিল্ড টুলস JAR ফাইলের মেটাডেটা ব্যবহার করতে পারে এবং প্যাকেজিং/ডিপ্লয়মেন্ট প্রক্রিয়া নিয়ন্ত্রণ করতে সাহায্য করতে পারে।
- JarSigner: JAR ফাইলের ডিজিটাল স্বাক্ষর যাচাই করতে ব্যবহৃত হয়।
Java তে JAR ফাইলের মেটাডেটা অ্যাক্সেস করা খুবই সহজ এবং এটি Java API (বিশেষত java.util.jar.JarFile এবং java.util.jar.Manifest ক্লাস) ব্যবহার করে করা যায়। এটি একটি JAR ফাইলের গুরুত্বপূর্ণ তথ্য যেমন প্রধান ক্লাস, সংস্করণ, এবং অন্যান্য কনফিগারেশন অ্যাট্রিবিউট অ্যাক্সেস করতে সাহায্য করে, যা ডিপ্লয়মেন্ট, সংস্করণ কন্ট্রোল, এবং সিস্টেম কনফিগারেশন ব্যবস্থাপনায় কাজে আসে।
Read more