
Java শেখা শুরু করতে গিয়ে অনেকেই প্রথম ধাপেই আটকে যান। ভিডিও দেখে JDK নামালেন, ইনস্টল করলেন, কিন্তু Command Prompt এ javac লিখতেই লেখা আসে javac is not recognized as an internal or external command. ফলে এক লাইন কোড লেখার আগেই শেখার উৎসাহটা নষ্ট হয়ে যায়।
আসল কারণটা কঠিন কিছু নয়। Windows জানে না আপনার JDK কোন ফোল্ডারে বসেছে, তাই তাকে JAVA_HOME ও Path এর মাধ্যমে সেই ঠিকানা দেখিয়ে দিতে হয়। এই টিউনে একদম শূন্য থেকে শুরু করে JDK ইনস্টল করা, JAVA_HOME সেট করা, Path আপডেট করা, ইনস্টলেশন যাচাই করা এবং প্রথম Java প্রোগ্রাম কম্পাইল করে রান করা পর্যন্ত প্রতিটি ধাপ দেখাব। শেষে কমন এরর গুলোর সমাধানও থাকবে, যাতে কোথাও আটকে না যান।
Java দিয়ে প্রোগ্রাম লিখতে JRE নয়, দরকার হয় JDK অর্থাৎ Java Development Kit. JRE শুধু Java প্রোগ্রাম চালাতে পারে, কিন্তু কোড কম্পাইল করার javac টুলটি থাকে শুধু JDK এর ভেতরে।
নতুন শিখতে শুরু করলে LTS অর্থাৎ Long Term Support ভার্সন বেছে নিন। LTS ভার্সন গুলো দীর্ঘদিন আপডেট পায় এবং প্রায় সব টিউটোরিয়াল ও লাইব্রেরির সাথে মিলে যায়।
ডাউনলোড শেষ হলে ইনস্টলার ফাইলটিতে ডান বাটন ক্লিক করে Run as administrator দিন। এরপর নিচের ধাপ গুলো অনুসরণ করুন।
এই পাথটিই পরের ধাপে JAVA_HOME এর মান হিসেবে লাগবে, তাই ভুল না করে হুবহু কপি করে রাখুন।
JAVA_HOME হচ্ছে একটি এনভায়রনমেন্ট ভ্যারিয়েবল, যেটি Windows ও অন্য সফটওয়্যারকে জানিয়ে দেয় JDK ঠিক কোথায় আছে। পরে Maven, Gradle, Android Studio, Tomcat এর মত টুল গুলোও এই ভ্যারিয়েবল খোঁজে, তাই এটি সেট করা জরুরি।
Command Prompt যেকোনো ফোল্ডার থেকে java ও javac কমান্ড চিনতে পারে শুধু তখনই, যখন JDK এর bin ফোল্ডারটি Path ভ্যারিয়েবলে থাকে।
মনে রাখবেন, Path পরিবর্তনের পর আগে থেকে খোলা থাকা Command Prompt পুরনো সেটিংস মনে রাখে। তাই খোলা থাকা সব Command Prompt বন্ধ করে নতুন করে খুলুন।
নতুন একটি Command Prompt খুলে নিচের দুটি কমান্ড আলাদা আলাদা ভাবে চালান।
java -version javac -version
দুটি কমান্ডেই যদি ভার্সন নম্বর দেখায়, তাহলে আপনার সেটআপ সফল। শুধু java কাজ করলে কিন্তু javac কাজ না করলে বুঝবেন আপনি JDK এর বদলে শুধু JRE ইনস্টল করেছেন, অথবা Path এ bin ফোল্ডারটি ভুল ভাবে বসেছে।
এখন কোড লেখার পালা। প্রথম প্রোগ্রামের জন্য ভারী কোনো IDE দরকার নেই, Notepad দিয়েই শুরু করা যায়। এতে ভেতরে আসলে কী ঘটছে তা পরিষ্কার বোঝা যায়।
public class HelloTechtunes {public static void main(String[] args) {String tuner = "টেকটিউনার"; System.out.println("Hello Java, আমার প্রথম প্রোগ্রাম চলছে"); System.out.println("শুভেচ্ছা, " + tuner);}কোডটিতে ক্লাসের নাম HelloTechtunes এবং ফাইলের নাম HelloTechtunes.java, এই দুটি হুবহু এক হতে হয়। Java তে ছোট হাতের ও বড় হাতের অক্ষর আলাদা, তাই একটি অক্ষরের গরমিলেও কম্পাইল হবে না।
এবার Command Prompt এ ফোল্ডারটিতে গিয়ে কোড কম্পাইল করে রান করুন।
cd C:\JavaPractice javac HelloTechtunes.java java HelloTechtunes
কম্পাইল সফল হলে ফোল্ডারে HelloTechtunes.class নামে একটি নতুন ফাইল তৈরি হবে। এটি হচ্ছে Bytecode, যেটি JVM পড়ে প্রোগ্রামটি চালায়। শেষ কমান্ডটি দিলে স্ক্রিনে আপনার লেখা দুটি লাইন দেখতে পাবেন।
লক্ষ করুন, রান করার সময় java HelloTechtunes লিখতে হয়, java HelloTechtunes.class লিখতে হয় না।
এই এররটি আসে যখন Path এ JDK এর bin ফোল্ডার ঠিক ভাবে যোগ হয়নি। JAVA_HOME এর মান আবার মিলিয়ে দেখুন এবং নিশ্চিত হোন যে Path এ %JAVA_HOME%\bin এন্ট্রিটি আছে। এরপর Command Prompt বন্ধ করে নতুন করে খুলুন।
সাধারণত ফাইলের নাম ও ক্লাসের নাম আলাদা হলে, অথবা ভুল ফোল্ডারে থেকে কমান্ড চালালে এই এররটি আসে। dir কমান্ড দিয়ে দেখে নিন আপনি ঠিক ওই ফোল্ডারেই আছেন যেখানে class ফাইলটি তৈরি হয়েছে।
কম্পিউটারে একাধিক Java ভার্সন থাকলে এমন হয়। javac এক ভার্সনের আর java আরেক ভার্সনের হলে এই সমস্যা দেখা দেয়। java -version ও javac -version এর আউটপুট মিলিয়ে দেখুন, না মিললে পুরনো ভার্সনটি Path থেকে সরিয়ে দিন।
Notepad এ সেভ করার সময় All Files নির্বাচন না করলে এটি ঘটে। ফোল্ডারের View অপশন থেকে File name extensions চালু করে ফাইলের আসল নাম দেখে নিন ও ঠিক করুন।
এই ছয়টি ধাপ ঠিক ভাবে শেষ করার মানে হচ্ছে, আপনার কম্পিউটার এখন Java কোড কম্পাইল ও রান করার জন্য পুরোপুরি প্রস্তুত। শুরুতে এই সেটআপটি ঠিক ভাবে করে নিলে সামনে IDE, Maven বা Spring Boot নিয়ে কাজ করার সময় অনেক ঝামেলা এমনিতেই এড়ানো যায়।
আপনার সেটআপ করতে গিয়ে কোন ধাপে সমস্যা হয়েছে বা কোন এররটি দেখেছেন, টিউমেন্টে জানান। আমি ধরে ধরে সমাধান বলে দেওয়ার চেষ্টা করব।
আমি নাছিরুল হক। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 ঘন্টা 30 মিনিট যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 4 টি টিউন ও 0 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।