কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ Multi-Release JAR (mrjar) কী?

একটি মাল্টি-রিলিজ জার (রেফারেন্স: mrjar) একই লাইব্রেরির একাধিক JDK ভার্সন-এর জন্য রিলিজ ধারণ করে। অর্থাৎ, আমরা একটি লাইব্রেরি mrjar হিসেবে রাখতে পারি যা JDK 9-এর জন্য কাজ করবে। mrjar-এ থাকা কোডে ক্লাস ফাইল থাকে যা JDK 9-এ কম্পাইলড। JDK 9-এ কম্পাইলড ক্লাসগুলো JDK 9-এর অফার করা API-র সুবিধা নিতে পারে।

mrjar ইতিমধ্যে বিদ্যমান জারের ডিরেক্টরি স্ট্রাকচারকে এক্সটেন্ড করে। এতে একটি রুট ডিরেক্টরি থাকে যেখানে সব কন্টেন্ট থাকে এবং META-INF ডিরেক্টরি থাকে যা জারের মেটাডেটা স্টোর করতে ব্যবহৃত হয়। সাধারণত একটি জারে META-INF/MANIFEST.MF ফাইল থাকে যাতে অ্যাট্রিবিউট থাকে।

সাধারণ জারের এন্ট্রি

- jar-root
- C1.class
- C2.class
- C3.class
- C4.class
- META-INF
- MANIFEST.MF

উপরের টেমপ্লেটে জারে চারটি ক্লাস ফাইল এবং একটি MANIFEST.MF ফাইল রয়েছে। mrjar META-INF ডিরেক্টরিকে এক্সটেন্ড করে JDK ভার্সন-স্পেসিফিক ক্লাস স্টোর করে। META-INF ডিরেক্টরিতে versions সাব-ডিরেক্টরি থাকে যাতে অনেক সাব-ডিরেক্টরি থাকে, প্রতিটির নাম JDK মেজর ভার্সনের সমান। উদাহরণস্বরূপ, JDK 9-স্পেসিফিক ক্লাসের জন্য META-INF/versions/9 directory থাকে। JDK 10-স্পেসিফিক ক্লাসের জন্য META-INF/versions/10 থাকে।

mrjar স্ট্রাকচার

- jar-root
- C1.class
- C2.class
- C3.class
- C4.class
- META-INF
- MANIFEST.MF
- versions
  - 9
    - C2.class
    - C5.class
  - 10
    - C1.class
    - C2.class
    - C6.class
  1. জাভাতে Container ক্লাসের গুরুত্ব কী?

  2. জাভাতে GridBagConstraints ক্লাসের গুরুত্ব কী?

  3. জাভাতে SwingWorker ক্লাসের গুরুত্ব কী?

  4. জাভাতে SwingUtilities ক্লাসের গুরুত্ব কী?