আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৪] :: জেনে নিই জাভা প্রোগ্রাম কম্পাইল এবং রান করার সময় আসলে ভিতরে কি ঘটে আর সাথে প্যাথ সিলেকশনও

আস সালামু আলাইকুম, আশা করি সবাই ভাল আছেন। সবার মনেই ঈদের খুশি তাই না??? তাই সবাইকে জানাই আবারও ঈদের অগ্রিম শুভেচ্ছা। ঈদের আগে মনে হয় এটাই আমার শেষ টিউন। ঈদের পর আবার ৬তারিখ থেকে আমার টিউন দেখতে পারবেন। এইবার ঈদে আপনাদের প্ল্যানিং কি সেটা আমি জানি না। তবে আমার প্ল্যানিং হচ্ছে ইচ্ছামত ঘুমাবো। ঘুরাঘুরি এমনিতেও কেন জানি ভাল লাগে না। কম্পিউটারেই তো কত জায়গা দেখা যায়। কোনো প্লেসের নাম লিখে ইউটিউবে সার্চ করলেই তো ঐ জায়গার ভিডিও দেখা যায়। তাই ঐখানে গিয়ে কি লাভ? হা হা হা ঐখানে গিয়ে দেখা আর কম্পিউটারের মনিটরের মধ্যে দেখার মধ্যে অনেক পার্থক্য রয়েছে। তাই সময় পেলে অবশ্যই কোনো দর্শনীয় স্থানে যান। কাজের ক্লান্তি চলে যাবে। নিজেকে নিয়ে ভাবার সময় নেই, আপনাদের নিয়ে ভাবি। মনের মধ্যে ছুটির আনন্দ খুব ভাল কাজ করতেছে। মন চাইতেছে একটু নাচি। কিন্তু নাচলে আপনাদের জন্য আমার এই লেখাটুকু লিখে দিবে কে?

তো চলুন আর কথা না বাড়িয়ে আজকের মূল টপিক্স এ চলে যাই। জাভা প্রোগ্রাম কম্পাইল এবং রান করার সময় আসলে ভিতরে কি ঘটনা ঘটে আমরা আজ সেটা নিয়েই একটু জানার চেষ্টা করবো। কারণ কোনো জিনিস কিভাবে কাজ করে সেটা যদি আপনার জানা থাকে তাহলে আপনি সেই জিনিসে খুব সহজেই এক্সপার্ট হতে পারবেন। একটা মা যেমন বুঝতে পারে যে, তার সন্তানের কখন কি লাগবে। ঠিক তেমনি ভিতরের কাজ সম্পর্কে যদি আপনার ধারণা থাকে তাহলে আপনি খুব সহজেই বুঝতে পারবেন প্রোগ্রামটা কিভাবে করলে ভাল হবে। তো চলুন এত ভুমিকা দেয়ার কি আছে? সরাসরি মূল টপিক্স এ যাওয়া যাক।

জেনে নিই জাভা প্রোগ্রাম কম্পাইল এবং রান করার সময় আসলে ভিতরে কি ঘটে????

আমরা বিগত পর্বে hello java প্রোগ্রামটি রান করিয়েছিলাম। সেটাকেই আজকে উদাহারণ হিসেবে ব্যবহার করবো। চলুন শুরু করি... খেলা...

আচ্ছা, যখন একটা জাভা ফাইলকে কম্পাইল করি ঐ সময় সেখানে কি হয়?

কি আর হবে।একটা খেলা হবে। আমরা যখন জাভা প্রোগ্রামকে রান করাই তখন জাভা ফাইলটি jvm মেশিনে থাকা জাভা কম্পাইলার দ্বারা কম্পাইল হয়। অপারেটিং সিস্টেম এর সাথে কোনো প্রকার যোগাযোগ করতে হয় না। এবং কম্পাইল হওয়ার পর সেটা বাইট কোডে রুপান্তরিত হয়। নিচের ছবিটি দেখলে আশা করি বিষয়টি সম্পর্কে ক্লিয়ার হয়ে যাবেন।

আচ্ছা, আমরা যখন রান করি তখন কি ঘটে?

কি আর ঘটবে? রাসায়নিক বিক্রিয়া ঘটবে। কিভাবে? নিচের ছবিটি দেখুন তাহলেই বুঝতে পারবেন।

রাসায়নিক বিক্রিয়া ঘটে নি? রান করালেন একটা ক্লাস ফাইল আর আউটপুট পেলেন hello java তাহলে এটাকে কি রাসায়নিক বিক্রিয়া বলা যাবে না? হা হা হা। মজা করলাম। যাইহোক আমরা যখন কোনো জাভা প্রোগ্রামকে রান করাই তখন উপরের ছবি অনুযায়ী কাজগুলো সম্পন্ন হয়।

  • ক্লাস লোডারঃ এটি জেভিএম এর একটি সাব সিস্টেম যা ক্লাস ফাইল লোড করার জন্য ববহৃত হয়।
  • বাইটকোড ভেরিফাইয়ারঃ টুকরা টুকরা কোডগুলো কোনোটি অবজেক্ট কে অবৈধ পন্থায় বা অসদুপায়ে এক্সেস করতে চাচ্ছে কি না সেটা ভেরিফাই করে।
  • ইন্টারপ্রিটারঃ  বাইটকোড স্ট্রিমকে রিড করে এবং ইনস্ট্রাকশন কে এক্সিকিউট করে।

আপনি কি জাভা ফাইল নেইমকে মেইন ক্লাসের বাইরেও যেকোনো নামে সেভ করতে পারবেন?

অবশ্যই পারবেন। তবে সেই ক্লাস যদি পাবলিক না হয়। তবে আপনি কিন্তু চাইলেও eclips এ এই কাজ করতে পারবেন না। আপনি যেকোনো নামে জাভা ফাইল সেইভ করে কম্পাইল করতে পারেন। কিন্তু রান করার সময় মেইন ক্লাসকে রান করাতে হবে। যেমন, আপনি ফাইল সেইভ করলেন hard নামে। এরপর কম্পাইল করলেন javac hard লিখে।কিন্তু রান করতে হবে java Simple লিখেই। (গত পর্বের প্রোগ্রামকেই সব জায়গায় উদাহারণ হিসেবে ব্যবহার করতেছি।)

কম্পাইল করার জন্যঃ javac Hard.java

এক্সিকিউট করার জন্যঃ java Simple

আপনি কি জাভা প্রোগ্রামে একাধিক ক্লাসকে ব্যবহার করতে পারবেন?

অবশ্যই নিচের ছবির মত আপনি জাভা সোর্স ফাইলে একাধিক ক্লাসকে ব্যবহার করতে

 

গত পর্বে সময় কম থাকার কারণে আপনাদেরকে পারমানেন্ট  প্যাথ সিলেকশন শর্টকার্টে দেখিয়েছি। চলুন আজকে একটু বিস্তারিত দেখাই। প্যাথ সিলেকশনের জন্য আপনি প্রথমেই আপনার My computer বা This Pc তে ক্লিক করুন। এরপর ডানপাশের বাটোনে propertise এ ক্লিক করুন। এরপর advanced tab এ যান। নিচের ছবির মত।

এনভায়রনমেন্ট ভেরিয়েবল এ ক্লিক করুন।

এরপর ইউজার ভেরিয়েবল থেকে নিউ এ ক্লিক করুন। এরপর ভেরিয়েবল নেম এ লিখুন path আর ভেরিয়েবল ভেলুতে লিখুন c ড্রাইভের প্রোগ্রাম ফাইলের জাভা ফোল্ডারে ঢুকে bin ফুল্ডার পর্যন্ত যান এর পর যেই ডিরেক্টরি পাবেন সেটা কপি করে পেস্ট করুন।নিচের ছবি লক্ষ করুন।

আশা করি আপনাদেরকে সফল ভাবে বুঝাতে পেরেছি। জানি না আপনারা কতটুকু বুঝতে পেরেছেন। তবে আমি আমার চেষ্টার কোনো ত্রুটি করি নি। আপনারা অবশ্যই টিউমেন্ট করে জানাবেন যে, আমার এই চেইন টিউনগুলো আপনাদের কোনো উপকারে আসতেছে কি না। আর যদি আমার এই টিউন আপনার কাছে ভাল লাগে তাহলে অবশ্যই একটা লাইক দিবেন। যদি মনে হয় এই টিউন শেয়ার করলে আপনার কোনো ফেসবুক ফ্রেন্ড এর উপকার হতে পারে তাহলে অবশ্যই টিউন টি শেয়ার করার অনুরোধ রইলো।

ওহ আর সামনে তো কোরবানির ঈদ কেউ দাওয়াত তো দিলেন না। ঠিক আছে সবাই আমার বাড়ি চলে আসবেন আমি দাওয়াত দিয়ে দিলাম। কিন্তু আমার বাড়ির এড্রেস কিন্তু দিবো না... হা হা হা... এড্রেস এর দরকার হলে ফেসবুকে নক কইরেন দিয়ে দিবো নি।

যাইহোক, আজ অনেক কথা বলে ফেললাম তাই আর কথা বাড়াবো না। সবাইকে আবারো হাম্মা মোবারকের শুভেচ্ছা জানিয়ে শেষ করছি আমার আজকের এই টিউন।

পরিশেষে ভাল থাকুন, সুস্থ থাকুন, প্রযুক্তিকে ভালবাসুন আর প্রযুক্তির সাথেই থাকুন।

আল্লাহ হাফিজ।

ফেসবুকে আমি 

Level 1

আমি মোঃ আশিকুর রহমান সরল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 9 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 83 টি টিউন ও 102 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 12 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি একজন প্রযুক্তি প্রেমী।কম্পিউটার ইঞ্জিনিয়ারিং এ লেখাপড়া করছি।পৃথিবীকে নতুন কিছু করে দেখাতে চাই। My Website


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস