একটি অটোমেটিক মডিউল হলো একটি জার যা আমরা modulepath-এ রাখি। আমাদের অ্যাপ্লিকেশনে ব্যবহার होनेवाले অনেক পূর্ব-বidas ফাইল রয়েছে যারা এখনো মডুলারাইজড নয়। মাইগ্রেশন সহজ করার জন্য, আমরা যেকোনো লাইব্রেরির জার ফাইল অ্যাপ্লিকেশনের মডিউল পাথে যোগ করতে পারি, তারপর সেই জার ফাইলের প্যাকেজগুলো ব্যবহার করতে পারি। এটি ضمنিতভাবে একটি অটোমেটিক মডিউল হয়ে যায় এবং মডিউল ডিক্লেরেশনের requires ডিরেক্টিভে নির্দিষ্ট করা যায়। জারটির ফাইলনেমই এর মডিউল নাম হয় যা একটি বৈধ জাভা আইডেন্টিফায়ার হতে হবে যাতে "requires" ডিরেক্টিভে ব্যবহার করা যায়।
একটি অটোমেটিক মডিউল:
- নিঃশব্দে সব প্যাকেজ টাইপ এক্সপোর্ট করে, তাই যেকোনো মডিউল যা একটি অটোমেটিক মডিউল পড়তে পারে (অ্যানামড মডিউল সহ) সেটির পাবলিক টাইপগুলোর অ্যাক্সেস পায় অটোমেটিক মডিউল প্যাকেজে।
- নিঃশব্দে সব অন্যান্য মডিউল পড়ে (requires), অন্যান্য অটোমেটিক মডিউল এবং অ্যানামড মডিউল সহ, তাই একটি অটোমেটিক মডিউল সিস্টেমের অন্যান্য মডিউল দ্বারা এক্সপোজ করা সকল পাবলিক টাইপ অ্যাক্সেস করতে পারে।
%JAVA_HOME%\java --module-path ./libs:./libs-legacy --module app/com.app.Main
অটোমেটিক মডিউলের নামকরণ:
- ".jar" এক্সটেনশনটি মুছে ফেলা হয়।
- ভার্সন নম্বর মুছে ফেলা হয়। উদাহরণ: mylib-1.2.3 -> mylib
- নন-আলফানিউমেরিক ক্যারেক্টার গুলো পিরিয়ড দিয়ে প্রতিস্থাপিত হয়।
- পুনরাবৃত্ত পিরিয়ডগুলো একক পিরিয়ড দিয়ে প্রতিস্থাপিত হয়, শুরু এবং শেষের পিরিয়ডগুলো মুছে ফেলা হয়।