|
45 | 45 | জাভা কোডকে কম্পাইল করলে সেটি একটি অন্তর্বর্তীকালীন ল্যাংগুয়েজ এ রূপান্তরিত হয়। এটি ঠিক হিওম্যান রিডএবল না আবার মেশিন রিডএবল ও না। একে আমরা বলি বাইট কোড। এই বাইটকোড শুধুমাত্র জাভা ভার্চুয়াল মেশিন(JVM) বুঝতে পারে। JVM বাইট কোড কে ইন্টারপ্রেট করে মেশিন ল্যাংগুয়েজ এ রূপান্তরিত করে। এর জন্যে JVM জাস্ট ইন টাইম(JIT) কম্পাইলার ব্যাবহার করে। সুতরাং দেখা যাচ্ছে, জাভা কোডকে প্রথমে কম্পাইল করা হয়, তারপর সেই আউটপুট কে ইন্টারপ্রেট করা হয়। এক্ষেত্রে প্রশ্ন হতে পারে, জাভা আসলে কি? কম্পাইল্ড ল্যাংগুয়েজ নাকি ইন্টারপ্রেটেড ল্যাংগুয়েজ? উত্তর হচ্ছে জাভা একি সাথে দুটোই। |
46 | 46 |
|
47 | 47 | উপরের বর্ণনা থেকে আমরা তিনটি জিনিস জানলাম - |
48 | | -১. বাইট কোড – এটি হচ্ছে এক ধরণের ইস্ট্রাকশান সেট- যা কিনা শুধুমাত্র জাভা ভার্চুয়াল মেশিন বুঝতে পারে। জাভা কোড ( হিউম্যান রিডএবল) অর্থাৎ আমরা যে কোড গুলো লিখবো সেগুলো কে জাভা কম্পাইলার দ্বারা কম্পাইল্ড করলে বাইটকোড তৈরি হয়। এই বাইটকোড গুলো .class এক্সটেনশন যুক্ত বাইনারী ফাইলে স্টোর করা হয়। |
| 48 | +**১. বাইট কোড** – এটি হচ্ছে এক ধরণের ইস্ট্রাকশান সেট- যা কিনা শুধুমাত্র জাভা ভার্চুয়াল মেশিন বুঝতে পারে। জাভা কোড ( হিউম্যান রিডএবল) অর্থাৎ আমরা যে কোড গুলো লিখবো সেগুলো কে জাভা কম্পাইলার দ্বারা কম্পাইল্ড করলে বাইটকোড তৈরি হয়। এই বাইটকোড গুলো .class এক্সটেনশন যুক্ত বাইনারী ফাইলে স্টোর করা হয়। |
49 | 49 |
|
50 | | -২. জাভা ভার্চুয়াল মেশিন(JVM) - এটি মূলত একটা বাস্তব মেশিনের ভেতর একটা কাল্পনিক মেশিন। সহজ কথায়- এটি একটি সফ্টওয়্যার যা কিনা বাইট কোড পড়ে সেগুলো মেশিন এক্সিকিউটেবল কোড-এ রূপান্তরিত করতে পারে। JVM অনেগুলা মেশিনের জন্যে লেখা হয়েছে- অর্থাৎ এটি উইন্ডোজ, ম্যাক OS, লিনাক্স, আইবিএম mainframes, সোলারিস ইত্যাদি বিভিন্ন অপারেটিং সিস্টেমের জন্যে আলাদা আলাদা ভাবে লেখা হয়েছে। এর ফলে, আমরা যদি একবার কোন জাভা প্রোগ্রাম লিখি, সেটি যেকোন মেশনিে চালানো যাবে। এর কারণ আমরা এখন কোন নির্দিষ্ট মেশিনকে উদ্দ্যেশ্য করে না করে শুধু মাত্র JVM কে উদ্দ্যেশ্য করে কোড লিখি । যেহেতু সব মেশিনের জন্যেই JVM আছে, সুতরাং আমাদের কোড সব মেশিনেই চলবে। আর এভাবেই - “Write once, run anywhere” সম্ভব হচ্ছে। |
| 50 | +**২. জাভা ভার্চুয়াল মেশিন(JVM)** - এটি মূলত একটা বাস্তব মেশিনের ভেতর একটা কাল্পনিক মেশিন। সহজ কথায়- এটি একটি সফ্টওয়্যার যা কিনা বাইট কোড পড়ে সেগুলো মেশিন এক্সিকিউটেবল কোড-এ রূপান্তরিত করতে পারে। JVM অনেগুলা মেশিনের জন্যে লেখা হয়েছে- অর্থাৎ এটি উইন্ডোজ, ম্যাক OS, লিনাক্স, আইবিএম mainframes, সোলারিস ইত্যাদি বিভিন্ন অপারেটিং সিস্টেমের জন্যে আলাদা আলাদা ভাবে লেখা হয়েছে। এর ফলে, আমরা যদি একবার কোন জাভা প্রোগ্রাম লিখি, সেটি যেকোন মেশনিে চালানো যাবে। এর কারণ আমরা এখন কোন নির্দিষ্ট মেশিনকে উদ্দ্যেশ্য করে না করে শুধু মাত্র JVM কে উদ্দ্যেশ্য করে কোড লিখি । যেহেতু সব মেশিনের জন্যেই JVM আছে, সুতরাং আমাদের কোড সব মেশিনেই চলবে। আর এভাবেই - “Write once, run anywhere” সম্ভব হচ্ছে। |
51 | 51 |
|
52 | | -৩. জাস্ট ইন টাইম( JIT) কম্পাইলার – এটি মূলত JVM এর একটি অংশ। আমরা যে জাভা কোড কম্পাইল করার সময় তৈরি করি সেগুলো মূলত JIT কম্পাইলার প্রসেস করে। একে dynamic translator ও বলা যায়- কারণ এটি রানটাইম-এ অর্থাৎ প্রোগ্রাম চলাকালিন সময়ে বাইটকোড প্রসেস করে। |
| 52 | +৩. **জাস্ট ইন টাইম( JIT) কম্পাইলার** – এটি মূলত JVM এর একটি অংশ। আমরা যে জাভা কোড কম্পাইল করার সময় তৈরি করি সেগুলো মূলত JIT কম্পাইলার প্রসেস করে। একে dynamic translator ও বলা যায়- কারণ এটি রানটাইম-এ অর্থাৎ প্রোগ্রাম চলাকালিন সময়ে বাইটকোড প্রসেস করে। |
53 | 53 |
|
54 | 54 |
|
55 | 55 | এবার আমরা আরও কিছু টার্মিনোলোজি( পরিভাষা) এর সাথে পরিচিত হই। |
|
63 | 63 | **জাভা স্ট্যান্ডার্ড এডিশন (JSE)** |
64 | 64 | - ডেক্সটপ এবং স্ট্যান্ড-অ্যলোন সার্ভার এপ্লিকেশান তৈরি করার জন্যে যে সব টুল এবং এপিআই দরকার হয় সেগুলোকে আলাদা করে এর নাম দেওয়া হয়েছে জাভা স্ট্যান্ডার্ড এডিশন। |
65 | 65 |
|
66 | | -জাভা এন্টারপ্রাইস এডিশন (JEE) |
| 66 | +**জাভা এন্টারপ্রাইস এডিশন (JEE) ** |
67 | 67 | – এটি JSE এর উপর তৈরি ওয়েব এবং অনেক বড় মাপের এন্টারপ্রাইজ এপ্লিকেশান তৈরি করার জন্যে যে সব কম্পোনেন্ট দরকার হয় সেগুলোকে আলাদা করে এর নাম দেওয়া হয়েছে জাভা এন্টারপ্রাইস এডিশন- উদারহরণসরূপ এর কম্পোনেন্ট গুলো হচ্ছে- |
68 | 68 |
|
69 | 69 | - Servlets |
|
78 | 78 |
|
79 | 79 | - এটি মূলত জাভা স্ট্যান্ডার্ড এডিশন এর সংক্ষিপ্ত এডিশন। ইন্টারনেট অব থিংস, এমবেড ডিভাইস, মোবাইল ডিভাইস, মাইক্রো কন্ট্রোলার, সেন্সর, গেটওয়ে, মোবাইল ফোন, ব্যক্তিগত ডিজিটাল সহায়ক (পিডিএ), টিভি সেট টপ বক্স, প্রিন্টার ইত্যাদি জন্যে তৈরি জাভার এই সংক্ষিপ্ত এডিশন কে বলা হ্য় - জাভা মাইক্রো এডিশন । |
80 | 80 |
|
81 | | - |
82 | 81 | এবার তাহলে জাভা চলুন জাভা ইন্সটল করে ফেলি-- |
83 | 82 |
|
84 | | - |
85 | 83 | লিনাক্স মেশিনে জাভা ইনস্টল করতে নিচের ধাপ গুলো apply করতে হবে- |
86 | 84 |
|
87 | 85 | - ধাপ ১: নিচের লিংক থেকে জাভা ডাউনলোড করে নিন। |
88 | 86 |
|
89 | | - Oracle JDK 7 Download Link |
| 87 | + [Oracle JDK 7 Download Link](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html) |
90 | 88 |
|
91 | 89 | - ধাপ ২: এরপর টার্মিনাল থেকে যেখানে জাভা ডাউনলোড হয়েছে সেখানে যান- |
92 | 90 |
|
|
127 | 125 |
|
128 | 126 | আর উইন্ডোজ মেশিনের ক্ষেত্রে এটি আরো সহজ। এর জন্যে শুধুমাত্র JDK টি ডাওনলোড করে ডাবল-ক্লিক করেই এটি ইনস্টল করা যাবে। |
129 | 127 |
|
130 | | - |
131 | 128 | **IDE-** |
132 | 129 |
|
133 | 130 | এক্ষেত্রে আমি দুটি আইডিই কথাব বলতে পারি- |
134 | | --১. Eclipse - https://www.eclipse.org/downloads/ |
135 | | --২. IntelliJ IDEA - http://www.jetbrains.com/idea/download/ |
| 131 | +- ১. Eclipse - https://www.eclipse.org/downloads/ |
| 132 | +- ২. IntelliJ IDEA - http://www.jetbrains.com/idea/download/ |
136 | 133 |
|
137 | 134 | তবে এই টিউটোরিয়ালে আমরা Eclipse ব্যবহার করবো। |
138 | 135 |
|
|
144 | 141 |
|
145 | 142 | public static void main(String[] args) { |
146 | 143 | System.out.println("Hello, world!"); |
147 | | - } |
148 | | - |
| 144 | + } |
149 | 145 | } |
150 | 146 |
|
151 | 147 |  |
0 commit comments