اگر واقعاً عجله دارید و میخواهید اولین کد جاوا را اجرا کنید، میتوانید از Java Playground موجود در همین سایت استفاده کنید. تقریباً هر قطعه کدی را میتوانید در آن امتحان کنید. مثلاً میتوانید Hello World! را چاپ کنید — که طبیعتاً اولین چیزی است که هر کسی میخواهد امتحان کند. نیازی به نصب هیچ چیز نیست؛ فقط کد جاوا را تایپ کنید، دکمه Run را بزنید و بروید!
درک میکنم که مشتاق هستید کدی را در ویرایشگر خود تایپ کنید و آن را اجرا کنید تا اولین برنامه جاوا را در عمل ببینید! نگران نباشید، انتظار شما تا پایان این آموزش برآورده خواهد شد. اما قبل از آن، میخواهم چند عنصر کلیدی را بررسی کنیم تا بتوانید کاری را که انجام میدهید بهخوبی درک کنید.
حتی اگر با زبان برنامهنویسی دیگری آشنا هستید، کامپایل (Compilation) را بشناسید و بدانید فایل اجرایی چیست، باز هم ممکن است موارد زیر برایتان جالب باشد، چون جاوا به شکلی متفاوت از C یا C++ کار میکند.
چند مرحله وجود دارد که باید برای ساختن یک برنامه جاوا دنبال کنید. این آموزش نشان میدهد چگونه یک برنامه بسیار ساده جاوا بسازید. اگر نیاز به ساخت برنامهای سازمانی (Enterprise) دارید، فرآیند پیچیدهتر است، اما در هسته خود همین مراحل ساده را خواهید یافت.
مرحله اول: نوشتن کد جاوا در یک ویرایشگر متنی.
مرحله دوم: این کد باید به فرمت دیگری تبدیل شود که توسط کامپیوتر شما قابل اجرا باشد. این تبدیل توسط نرمافزاری خاص به نام کامپایلر (Compiler) انجام میشود. برخی زبانها کامپایلر ندارند؛ جاوا دارد. هر کامپایلر مخصوص یک زبان است.
فایلی که کامپایلر تولید میکند معمولاً فایل باینری (Binary File) یا فایل اجرایی (Executable File) نامیده میشود. شما میتوانید کد منبع (Source Code) را بخوانید و بفهمید، اما فایلهای باینری و اجرایی برای خواندن توسط انسان نیستند. فقط کامپیوتر شما میتواند آنها را رمزگشایی کند.
کد کامپایلشده جاوا حاوی کدهای باینری خاصی به نام بایتکد (Byte Code) است. این یک اصطلاح فنی است که ممکن است با آن مواجه شوید. توضیح دقیق اینکه این بایتکد چیست از حوزه این آموزش خارج است.
کامپایل کردن کد ممکن است با خطا مواجه شود؛ کد شما باید صحیح باشد تا کامپایلر بتواند نسخه اجرایی آن را تولید کند. نگران نباشید، این صفحه کدی را که قرار است کامپایل کنید در اختیار شما قرار میدهد. فقط کافی است آن را کپی و در ویرایشگر متنی خود پیست کنید.
وقتی کامپایلر فایل باینری مورد نیاز را تولید کرد، میتوانید آن را اجرا کنید. اجرای این فایل باینری، برنامه شما را اجرا میکند.
این دو مرحله — کامپایل و اجرا — به دو ابزار خاص نیاز دارند که بخشی از Java Development Kit (مشهور به JDK) هستند. نحوه دانلود رایگان JDK و نحوه نصب آن را در ادامه این آموزش خواهید دید.
توجه کنید که از Java SE 11 به بعد میتوانید این دو مرحله را با اجرای مستقیم فایل
.javaترکیب کنید. از Java SE 22 به بعد، برنامه شما حتی میتواند در چند فایل مختلف توزیع شود.
اولین نکتهای که باید بدانید این است که کد جوایی که مینویسید در فایلهای متنی ساده ذخیره میشود. در این آموزش، برنامه شما در یک فایل متنی نوشته میشود. برنامههای بزرگتر ممکن است به هزاران فایل نیاز داشته باشند.
پس مرحله اول در واقع شامل ساختن یک فایل و دادن یک نام به آن است. در ادامه فرض میکنیم نام آن MyFirstJavaApp.java باشد، اما میتوانید هر نامی بدهید، به شرط اینکه پسوند .java را حفظ کنید.
محدودیتهایی در کاراکتر اول فایل وجود دارد. برای سادگی، فقط از یک حرف به عنوان کاراکتر اول استفاده کنید. در جاوا یک قرارداد (Convention) وجود دارد: نام فایل جاوا باید با حرف بزرگ شروع شود. این اجباری نیست، اما همه توسعهدهندگان جاوا از این قرارداد پیروی میکنند. وقتی توسعهدهنده باسابقه جاوا شدید، دیدن کلاسی که از این قرارداد پیروی نمیکند برایتان عجیب به نظر میرسد.
اکنون میتوانید این فایل را در یک ویرایشگر متنی باز کنید. یک نکته: حتماً از یک ویرایشگر متنی ساده (Plain Text Editor) برای ایجاد و ذخیره این فایل استفاده کنید. استفاده از واژهپرداز (Word Processor) کار نمیکند.
وقتی فایل MyFirstJavaApp.java را باز کردید، میتوانید کد زیر را کپی و در آن پیست کنید.
همانطور که میدانید، در علوم کامپیوتر یک سنت دیرینه وجود دارد: نوشتن برنامهای که عبارت "Hello, World!" را در کنسول چاپ کند. پس بیایید این کار را انجام دهیم!
public class MyFirstJavaApp {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
کامپایل و اجرای برنامههای ساده فقط یک مرحله پس از ایجاد اولین برنامه شماست.
تا اینجا تنها ابزاری که استفاده کردهاید یک ویرایشگر متنی ساده بوده است. اجرای این برنامه به ابزار دیگری نیاز دارد — ابزاری که شاید در کامپیوتر شما وجود نداشته باشد. خوشبختانه میتوانید این کامپایلر را بهصورت رایگان دانلود و استفاده کنید. بگذارید مراحل را راهنمایی کنم.
در حال حاضر، دانلود "جاوا" به معنای دانلود Java Development Kit (JDK) است. JDK شامل ابزارهای متعددی است و در میان آنها ابزارهایی هستند که برای کامپایل و اجرای برنامه جاوا استفاده میکنید. این ابزار بهطور رسمی توسط پروژه OpenJDK و Oracle توزیع میشود.
شاید درباره عناصر دیگری که «جاوا» نامیده میشوند شنیده باشید:
JRE (Java Runtime Environment): زیرمجموعهای از JDK است که دیگر توسط OpenJDK یا Oracle توزیع نمیشود. فقط ابزارهای لازم برای اجرای برنامه جاوا را شامل میشد. با ابزارهای JRE نمیتوانید کد خود را کامپایل کنید.
J2EE / Java EE / Jakarta EE: همه اینها به Java Enterprise Edition اشاره دارند. مجموعهای از ابزارها و کتابخانهها برای ساخت برنامههای سازمانی. Java EE با JDK متفاوت است و از حوزه این آموزش خارج است. برای کامپایل و اجرای برنامه سادهای که در این آموزش میسازیم به Java EE نیاز ندارید.
میتوانید JDK را از مکانهای مختلف دانلود کنید. یک صفحه مرکزی وجود دارد که همیشه به آخرین نسخه JDK اشاره میکند: https://jdk.java.net/. انتخاب آخرین نسخه "Ready for use" JDK شما را به صفحهای میبرد که میتوانید نسخه مورد نیاز خود را دانلود کنید.
از این صفحه میتوانید پنج نسخه را دانلود کنید:
نسخه ویندوز را دانلود کنید. فایلی با حجم حدود ۲۰۰ مگابایت دریافت میکنید که با هر نرمافزار فشردن/باز کردن ZIP قابل باز شدن است. این فایل ZIP حاوی JDK است. محتویات آن را در هر مکانی از کامپیوتر خود میتوانید استخراج کنید.
پس از آن باید متغیر محیطی به نام JAVA_HOME بسازید که به دایرکتوری اشاره کند که JDK را در آن استخراج کردهاید. ابتدا باید یک پرامپت DOS باز کنید. اگر فایل ZIP مربوط به JDK 26 را در دایرکتوری D:\jdk\ استخراج کردهاید، دستور زیر را تایپ کنید:
set JAVA_HOME=D:\jdk\jdk-26
توجه کنید که در این مثال و بقیه مثالها، علامت
>در ابتدای خط فقط نشان میدهد که باید این دستور را در پرامپت تایپ کنید. این کاراکتر بخشی از دستورsetنیست و نباید آن را تایپ کنید.
میتوانید بررسی کنید که متغیر JAVA_HOME بهدرستی تنظیم شده:
echo %JAVA_HOME%
خروجی مورد انتظار:
D:\jdk\jdk-26
سپس باید متغیر محیطی PATH را بهروز کنید و دایرکتوری bin از پوشه JDK را به آن اضافه کنید:
set PATH=%JAVA_HOME%\bin;%PATH%
بسیار مراقب تنظیم این دو متغیر باشید، چون حتی یک اشتباه کوچک مثل فاصله اضافی یا سمیکالن (semicolon) گمشده باعث خطا میشود.
این پرامپت را نبندید. اگر آن را ببندید و دوباره باز کنید، باید دوباره این دو متغیر را بسازید.
نسخه لینوکس را دانلود کنید. فایلی با پسوند .tar.gz دریافت میکنید که باید آن را استخراج کنید.
برای استخراج، آن را به دایرکتوری مناسب کپی یا انتقال دهید. سپس دستور زیر را تایپ کنید:
$ tar xzf openjdk-26_linux-x64_bin.tar.gz
توجه کنید که در این مثال و بقیه مثالها، علامت
$در ابتدای خط فقط نشان میدهد که باید این دستور را تایپ کنید. این کاراکتر بخشی از دستورtarنیست.
این دستور تمام فایلهایی با پسوند .tar.gz در دایرکتوری فعلی را استخراج میکند. اجرای آن ممکن است چند ثانیه یا بیشتر طول بکشد. دایرکتوری جدیدی در دایرکتوری فعلی با محتویات JDK ایجاد میشود.
پس از آن متغیر محیطی JAVA_HOME را بسازید. اگر فایل آرشیو JDK 26 را در /home/javauser/jdk استخراج کردهاید:
$ export JAVA_HOME=/home/javauser/jdk/jdk-26
سپس متغیر PATH را بهروز کنید:
$ export PATH=$JAVA_HOME/bin:$PATH
بررسی نهایی:
$ java -version
نسخه macOS را دانلود کنید. فایلی با پسوند .tar.gz دریافت میکنید.
$ tar xzf openjdk-26_macos-x64_bin.tar.gz
در این مثال هم،
$فقط نشانگر پرامپت است و بخشی از دستور نیست.
اجرای این دستور ممکن است چند ثانیه طول بکشد. دایرکتوری جدیدی با پسوند .jdk ایجاد میشود.
متغیر JAVA_HOME را بسازید. اگر فایل آرشیو JDK 26 را در /Users/javauser/jdk استخراج کردهاید:
$ export JAVA_HOME=/Users/javauser/jdk/jdk-26.jdk/Contents/Home
بهروزرسانی PATH:
$ export PATH=$JAVA_HOME/bin:$PATH
بررسی نهایی:
$ java -version
وقتی JDK، متغیر JAVA_HOME و متغیر PATH را بهدرستی تنظیم کردید، آماده اجرای اولین برنامه خود هستید.
چه مسیر ویندوز را رفته باشید، چه لینوکس و چه macOS، مراحل بعدی یکسان است.
مرحله ۱: به دایرکتوری بروید که فایل MyFirstJavaApp.java را در آن ذخیره کردهاید.
مرحله ۲: بررسی کنید که جاوا از این دایرکتوری قابل دسترسی است:
$ java -version
مرحله ۳: حالا اولین برنامه خود را اجرا کنید:
$ java MyFirstJavaApp.java
دو اتفاق ممکن است بیفتد. ممکن است پیامهای خطا دریافت کنید — باید آنها را اصلاح کنید.
اگر Hello World! چاپ شده: تبریک! برنامه جوای شما بهدرستی کامپایل و اجرا شده است.
بیایید برنامه را یک سطح بالاتر ببریم و از کاربر نامش را بپرسیم:
public class MyFirstJavaApp {
public static void main(String[] args) {
var name = IO.input("Enter your name: ");
IO.println("Hello " + name + "!");
}
}
همانطور که قبلاً اجرا کنید. باید از شما نامتان را بپرسد و سپس خروجی زیر را نشان دهد:
Enter your name: Duke
Hello Duke!
تبریک، اکنون آماده برنامههای پیچیدهتر هستید!
اگر این پیام خطا را دریافت کنید، ویندوز نمیتواند کامپایلر javac را پیدا کند.
یک راه برای اینکه ویندوز بداند javac کجاست: فرض کنید JDK را در C:\jdk26 نصب کردهاید:
C:\jdk26\bin\javac HelloWorldApp.java
برای جلوگیری از تایپ اضافه، آن را به متغیر PATH اضافه کنید.
اگر این پیام خطا را دریافت کنید، پسوند .java را فراموش کردهاید. دستور صحیح javac HelloWorldApp.java است، نه javac HelloWorldApp.
اگر UNIX نتواند javac را پیدا کند:
$ /usr/local/jdk26/bin/javac HelloWorldApp.java
اگر بخشی از برنامه را اشتباه تایپ کنید، کامپایلر خطای نحوی صادر میکند. مثلاً فراموش کردن سمیکالن (;):
String s = "Hello World" // سمیکالن فراموش شد
اگر خطای کامپایلری دیدید، برنامه کامپایل نشده و فایل .class ایجاد نشده. خطا را اصلاح و دوباره امتحان کنید.
کامپایلر صحت پایهای را هم بررسی میکند. مثلاً هنگام استفاده از متغیر بدون مقداردهی اولیه هشدار میدهد:
String s;
System.out.println(s); // متغیر مقداردهی نشده
اگر java نتواند فایل بایتکد HelloWorldApp.class را پیدا کند، باید دایرکتوری فعلی را بررسی کنید.
یک اشتباه رایج مبتدیان: اجرای java HelloWorldApp.class به جای java HelloWorldApp. آرگومان نام کلاس است، نه نام فایل.
مشابه ویندوز، java در دایرکتوری فعلی به دنبال فایل بایتکد میگردد. اگر فایل در مسیر دیگری است، دایرکتوری را تغییر دهید.
این اولین برنامه جاوا، مراحل پایهای را که هر توسعهدهنده جاوا دنبال میکند، نشان داد:
.java.classتوسعهدهندگانی که روی برنامههای بزرگ کار میکنند از محیطهای توسعه یکپارچه (IDEs) استفاده میکنند. IDEها کامپایل کد منبع را بهصورت خودکار انجام میدهند و در ردیابی خطاها کمک میکنند.
برخی ابزارهای رایگان و متنباز:
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://dev.java/learn/