যেকোনো JAR ফাইল নির্যাস করুন
ফাইল টেনে এনে এখানে ছাড়ুন অথবা নির্বাচন করতে ক্লি ক করুন
ব্যক্তিগত এবং সুরক্ষিত
সবকিছু আপনার ব্রাউজারে ঘটে। আপনার ফাইল আমাদের সার্ভারে কখনও স্পর্শ করে না।
অত্যন্ত দ্রুত
কোনও আপলোড নেই, কোনও অপেক্ষা নেই। আপনি একটি ফাইল ড্রপ করার মুহূর্তে রূপান্তর করুন।
আসলে বিনামূল্যে
কোনও অ্যাকাউন্টের প্রয়োজন নেই। কোনও লুকানো খরচ নেই। কোনও ফাইল আকারের কৌশল নেই।
JAR ফর্ম্যাটটি কি?
জাভা আর্কাইভ
জাভা আর্কাইভ (JAR) ফাইল ফরম্যাট হল একটি প্ল্যাটফর্ম-নির্ভরশীল ফাইল ফরম্যাট যা একাধিক ফাইলকে একটি একক ফাইলে সংযুক্ত এবং সংকুচিত করার জন্য ব্যবহৃত হয়। এটি ZIP ফাইল ফরম্যাটের উপর নির্মিত এবং জাভা ক্লাস এবং সংশ্লিষ্ট মেটাডেটা এবং রিসোর্স বিতরণের জন্য ব্যবহৃত হয়। JAR ফাইলগুলি জাভা প্ল্যাটফর্মের একটি মৌলিক বিল্ডিং ব্লক হিসাবে কাজ করে, যা ডেভেলপারদের জাভা অ্যাপ্লিকেশন এবং লাইব্রেরিগুলিকে একটি মানকীকৃত এবং দক্ষ পদ্ধতিতে প্যাকেজ এবং ডেপ্লয় করতে সক্ষম করে।
একটি JAR ফাইল ক্লাস ফাইল, রিসোর্স ফাইল এবং মেটাডেটার একটি সংগ্রহ নিয়ে গঠিত। ক্লাস ফ াইলগুলিতে কম্পাইল করা জাভা বাইটকোড থাকে যা একটি জাভা ভার্চুয়াল মেশিন (JVM) দ্বারা এক্সিকিউট করা যেতে পারে। রিসোর্স ফাইলগুলিতে বিভিন্ন ধরনের ডেটা অন্তর্ভুক্ত থাকতে পারে, যেমন ইমেজ, কনফিগারেশন ফাইল বা জাভা অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় অন্যান্য অ্যাসেট। মেটাডেটা JAR ফাইলের বিষয়বস্তু সম্পর্কে তথ্য সরবরাহ করে এবং সেগুলি কীভাবে প্রক্রিয়া করা উচিত তা বলে।
একটি JAR ফাইলের কাঠামো একটি নির্দিষ্ট লেআউট অনুসরণ করে। রুট স্তরে, একটি META-INF ডিরেক্টরি রয়েছে যাতে মেটাডেটা ফাইল থাকে। এই ডিরেক্টরির সবচেয়ে গুরুত্বপূর্ণ ফাইলটি হল MANIFEST.MF ফাইল, যা একটি প্লেইন টেক্সট ফাইল যা JAR ফাইলের বিষয়বস্তু সম্পর্কে তথ্য সরবরাহ করে। ম্যানিফেস্ট ফাইল বিভিন্ন অ্যাট্রিবিউট নির্দিষ্ট করতে পারে, যেমন অ্যাপ্লিকেশনের মূল ক্লাস, ক্লাসপাথ নির্ভরতা, সংস্করণের তথ্য এবং সুরক্ষা সেটিংস।
META-INF ডিরেক্টরির পাশাপাশি, একটি JAR ফাইলে একটি বা একাধিক সাবডিরেক্টরি থাকতে পারে যা ক্লাস ফাইল এবং রিসোর্স ফাইলগুলিকে সংগঠিত করে। সাবডিরেক্টরি কাঠামো সাধারণত JAR ফাইলের মধ্যে থাকা জাভা ক্লাসের প্যাকেজ হায়ারার্কির প্রতিফলন করে। উদাহরণস্বরূপ, যদি একটি ক্লাস com.example.myapp প্যাকেজের অন্তর্গত হয়, তাহলে এটি JAR ফাইলে com/example/myapp/ পাথের অধীনে সংরক্ষণ করা হবে।
JAR ফরম্যাটের একটি প্রধান সুবিধা হল এটি যে ফাইলগুলি ধারণ করে সেগুলি সংকুচিত করার ক্ষমতা। ডিফল্টভাবে, JAR ফাইলগুলি আর্কাইভের আকার কমাতে ZIP সংকোচন অ্যালগরিদম ব্যবহার করে। এই সংকোচন কেবল স্টোরেজ স্পেস সংরক্ষণ করে না, এটি একটি নেটওয়ার্কের উপর JAR ফাইল প্রেরণের জন্য প্রয়োজনীয় সময়ও হ্রাস করে। তবে, এটি লক্ষ্য করা গুরুত্বপূর্ণ যে সংকোচনটি JAR আর্কাইভের মধ্যে থাকা পৃথক ফাইলগুলিতে প্রয়োগ করা হয়, পুরো আর্কাইভে নয়।
JAR ফাইলগুলি বিভিন্ন সরঞ্জাম এবং লাইব্রেরি ব্যবহার করে তৈর ি এবং পরিচালনা করা যেতে পারে। জাভা ডেভেলপমেন্ট কিট (JDK) jar কমান্ড-লাইন সরঞ্জাম সরবরাহ করে, যা ডেভেলপারদের JAR ফাইল তৈরি, আপডেট এবং এক্সট্র্যাক্ট করতে দেয়। jar সরঞ্জামটি JAR ফাইলের বিষয়বস্তু নির্দিষ্ট করার, ম্যানিফেস্ট অ্যাট্রিবিউট সেট করার এবং ডিজিটাল স্বাক্ষর পরিচালনার জন্য বিভিন্ন বিকল্পকে সমর্থন করে।
কমান্ড-লাইন সরঞ্জামের পাশাপাশি, ডেভেলপাররা JAR ফাইলগুলি প্রোগ্রাম্যাটিকভাবে তৈরি এবং পরিচালনা করতে জাভা API গুলিও ব্যবহার করতে পারেন। java.util.jar প্যাকেজ JarFile, JarEntry এবং JarOutputStream এর মতো ক্লাস সরবরাহ করে, যা ডেভেলপারদের প্রোগ্রাম্যাটিকভাবে JAR ফাইল পড়তে এবং লিখতে সক্ষম করে। এই API গুলি JAR ফাইলের বিষয়বস্তু এবং মেটাডেটার উপর সূক্ষ্ম-দানা নিয়ন্ত্রণের অনুমতি দেয়।
JAR ফাইলগুলি জাভা অ্যাপ্লিকেশনগুলির ডেপ্লয়মেন্ট এবং বিতরণে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি সমস্ত প্রয়োজনীয় ক্লাস ফাইল, রিসোর্স এবং নির্ভরতাগুলিকে একটি একক ফাইলে প্যাকেজ করার একটি সুবিধাজনক উপায় সরবরাহ করে যা সহজেই বিতরণ করা যায় এবং জাভা সমর্থন করে এমন যেকোনো প্ল্যাটফর্মে এক্সিকিউট করা যায়। JAR ফাইলগুলি লাইব্রেরি, ফ্রেমওয়ার্ক এবং স্ট্যান্ডঅ্যালোন অ্যাপ্লিকেশন বিতরণ করতে ব্যবহার করা যেতে পারে।
JAR ফাইলগুলির জন্য একটি সাধারণ ব্যবহারের ক্ষেত্রে এক্সিকিউটেবল JAR ফাইল তৈরি করা, যা "ফ্যাট" বা "উবার" JAR নামেও পরিচিত। একটি এক্সিকিউটেবল JAR ফাইলে সমস্ত প্রয়োজনীয় নির্ভরতা থাকে এবং এটি সরাসরি জাভা রানটাইম পরিবেশ দ্বারা চালানো যেতে পারে। একটি এক্সিকিউটেবল JAR তৈরি করতে, ম্যানিফেস্ট ফাইলটি অ্যাপ্লিকেশনের এন্ট্রি পয়েন্ট হিসাবে কাজ করে এমন মূল ক্লাসটি নির্দিষ্ট করতে হবে। যখন JAR ফাইলটি এক্সিকিউট করা হয়, তখন JVM স্বয়ংক্রিয়ভাবে নির্দিষ্ট মূল ক্লাসটি লঞ্চ করে।
JAR ফাইলগুলি ডিজিটাল সাইনিংকেও সমর্থন করে, যা JAR ফাইলের অখণ্ডতা এবং সত্যতা যাচাই করার অনুমতি দেয়। ডিজিটাল স্বাক্ষর নিশ্চিত করে যে JAR ফাইলের বিষয়বস্তুতে হস্তক্ষেপ করা হয়নি এবং JAR ফাইলটি একটি বিশ্বস্ত উৎস থেকে এসেছে
ফাইল কম্প্রেশন অপ্রয়োজনীয় ডেটা কমিয়ে দেয় যাতে একই তথ্য কম বিট ব্যবহার করে। আপনি কতদূর যেতে পারবেন তার উপরের সীমা তথ্য তত্ত্ব দ্বারা নিয়ন্ত্রিত হয়: ক্ষতিহীন কম্প্রেশনের জন্য, সীমা হলো উৎসের এনট্রপি (শ্যানন-এর সোর্স কোডিং থিওরেম এবং তার আসল ১৯৪৮ সালের পেপার “যোগাযোগের একটি গাণিতিক তত্ত্ব”দেখুন)। ক্ষতিযুক্ত কম্প্রেশনের জন্য, হার এবং মানের মধ্যে ট্রেড-অফ রেট-ডিসটরশন তত্ত্ব দ্বারা ক্যাপচার করা হয়।
দুটি স্তম্ভ: মডেলিং এবং কোডিং
বেশিরভাগ কম্প্রেসারের দুটি পর্যায় থাকে। প্রথমত, একটি মডেল ডেটাতে কাঠামো ভবিষ্যদ্বাণী করে বা প্রকাশ করে। দ্বিতীয়ত, একটি কোডার সেই ভবিষ্যদ্বাণীগুলিকে প্রায়-সর্বোত্তম বিট প্যাটার্নে পরিণত করে। একটি ক্লাসিক মডেলিং পরিবার হলো লেম্পেল-জিভ: LZ77 (১৯৭৭) এবং LZ78 (১৯৭৮) পুনরাবৃত্ত সাবস্ট্রিং শনাক্ত করে এবং কাঁচা বাইটের পরিবর্তে রেফারেন্স নির্গত করে। কোডিং দিকে, হাফম্যান কোডিং (আসল পেপারটি দেখুন ১৯৫২) বেশি সম্ভাব্য প্রতীকগুলির জন্য ছোট কোড বরাদ্দ করে। অ্যারিথমেটিক কোডিং এবং রেঞ্জ কোডিং