کامپایل در Java
یک فایل آموزشی کوچک را ترجمه کنید و فایل کلاس تولیدشده را اجرا کنید. در Build.java کلاس عمومی Build را نگه دارید، در دموی اول ok را چاپ کنید، بعد از ویرایش و ترجمهٔ دوباره در دموی دوم ok و built را چاپ کنید. javac Build.java را اجرا کنید تا Build.class کنار منبع بیاید. java Build را اجرا کنید — نه java Build.java. Mini Project را برای صفحهٔ بعد بگذارید. این درس عادت ترجمهواجرا با فایل .class قابلدیدن است، نه فراخوانی کتابخانهٔ تازه و نه جمعبندی کورس.
یکبار ترجمه، بعد اجرای کلاس
Build.java را باز کنید. نام کلاس عمومی را Build نگه دارید. دموهای باقیمانندهٔ جمعبندی Recap، پرتابهای باقیمانندهٔ Dice با Random، چاپهای تاریخ Stamp، و هر Scanner صفحهکلید که منتظر تایپ میماند را حذف کنید. برنامه نباید منتظر ورودی بماند.
داخل Build.main یک کلمهٔ کوتاه چاپ کنید:
System.out.println("ok");
از پوشهای که Build.java در آن است javac Build.java را اجرا کنید. وقتی آکولادها و نقطهویرگولها جور باشند، javac سطر خودش را نمینویسد. Build.class را کنار منبع مینویسد. همان فایل .class است که لانچر Java بار میکند.
بعد java Build را اجرا کنید. پسوند .java را از فرمان اجرا بردارید. یک کلاس عمومی نگه دارید تا نام با Build یکی بماند. صفحه ok را نشان میدهد.
public class Build {
public static void main(String[] args) {
System.out.println("ok");
}
}
یکبار مسیر اجرا را دنبال کنید. javac میخواند Build.java و مینویسد Build.class. java Build بار میکند Build.class، از Build.main شروع میکند، و چاپ میکند ok. هیچجا new Random(42) نمیسازد. از Recap ready 42 چاپ نمیکند. روز تقویم را قفل نمیکند.
همزمان با نگاه به پوشه قانون مبتدی را بگویید: منبع با .java تمام میشود، بایتکد با .class، ترجمه با javac، اجرا با java و نام کلاس. Mini Project را روی این صفحه نسازید. Mini Project منتظر درس بعد است. java Build.java را تایپ نکنید — آن شکل اجرا برای مسیر این کورس غلط است.
اگر از فایل باقیماندهٔ Recap هنوز ready 42 میبینید، به Build.java بروید و بعد از javac Build.java، java Build را اجرا کنید. اگر javac خطا گزارش داد، منبع را درست کنید و پیش از اجرا دوباره ترجمه کنید. اگر اجرا گفت کلاس اصلی Build را پیدا یا بار نمیکند، تأیید کنید در پوشهای هستید که Build.class دارد و ترجمه موفق بوده است.
منبع را عوض کنید، دوباره ترجمه کنید
دموی اول یک ترجمهٔ موفق را ثابت میکند. دموی دوم نشان میدهد ویرایشها پیش از تغییر صفحه به javac تازه نیاز دارند. همان کلاس عمومی Build را نگه دارید. دو خط چاپ کنید:
System.out.println("ok");
System.out.println("built");
فایل را ذخیره کنید. دوباره javac Build.java را اجرا کنید تا Build.class بازنویسی شود. بعد java Build را اجرا کنید. صفحه ok، بعد built را نشان میدهد.
اگر منبع را عوض کنید و javac را رد کنید، java Build شاید فقط ok قدیمی را از فایل .class کهنه نشان دهد. آن صفحهٔ کهنه درس ترجمه است، نه درس Random. بعد از هر ویرایش نگهداشتهشده روی این صفحه ترجمه کنید.
public class Build {
public static void main(String[] args) {
System.out.println("ok");
System.out.println("built");
}
}
با javac Build.java ترجمه کنید و دوباره java Build را اجرا کنید. یکبار مسیر را دنبال کنید. فایل .class تازه هر دو خط چاپ را نگه میدارد. چاپ اول ok مینویسد. چاپ دوم built مینویسد. منتظر صفحهکلید نمیماند. seed ذخیره نمیکند. ready و 42 را به هم نمیچسباند.
دو دمو را دو شکل آموزشی نگه دارید. اول یک خط بعد از ترجمهٔ تمیز. بعد دو خط بعد از ترجمهٔ دوباره. هر دو شکل نام کلاس و فرمانهای یکسان دارند. شکل دوم فقط یک println دیگر اضافه میکند.
اگر Build.class را حذف کنید و بدون ترجمه java Build را اجرا کنید، لانچر میافتد چون بایتکد نیست. دوباره ترجمه کنید تا Build.class برگردد. اگر دو کلاس عمومی در یک فایل باشند، javac شکایت میکند — فقط Build را عمومی نگه دارید در فایل آموزشی.
javac در برابر java
این دو فرمان شبیهاند و کارهای جدا دارند. هنگام تمرین آنها را از هم جدا نگه دارید.
📊 عادتهای ترجمه و اجرا برای Build
| فرمان | کار | چک مبتدی |
|---|---|---|
javac Build.java |
منبع را میخواند، Build.class مینویسد |
موفقیت اغلب بیصداست؛ فایل .class را ببینید |
java Build |
Build.class را بار میکند و main را شروع میکند |
پسوند .java روی این فرمان نیست |
java Build.java |
شکل غلط برای این درس | فرمان را درست کنید؛ آن را اجرای آموزشی ندانید |
رد کردن javac بعد از ویرایش |
بایتکد کهنه شاید هنوز اجرا شود | صفحهٔ کهنه یعنی دوباره ترجمه کنید |
نبود Build.class |
اجرا کلاس را بار نمیکند | اول javac Build.java را اجرا کنید |
Compiling Summary نیست و Mini Project هم نیست
Summary از شما خواست ready 42 را از Recap توضیح دهید. Compiling از شما میخواهد ببینید javac بایتکد مینویسد و java آن را بار میکند. Mini Project روی صفحهٔ بعد از شما میخواهد برنامهٔ کوچک خودتان را بسازید. امروز آن سه کار را در یک فایل مبتدی قاطی نکنید.
ok و built فقط کلمات صفحه برای این فایل آموزشیاند. چهرهٔ Random نیستند و سطر نقشهٔ Summary نیستند. وقتی import برای Random روی فایل باقیماندهٔ Dice نیست، آن مشکل تمرین Random است، نه Compiling. وقتی Recap هنوز ready 42 چاپ میکند، آن فایل را تاریخ بگذارید و Build را روی صفحه نگه دارید.
بدون javac، .class تازه برای آخرین منبع نیست. بدون فرمان درست java Build، شاید هرگز آن کلاس را بار نکنید. هر دو گام را نگه دارید. نام کلاس را با فایل یکی نگه دارید. فایلهای Mini Project را تا آن درس از این صفحه دور نگه دارید.
چک پوشه قبل از ادامه
بعد از ترجمهٔ موفق پوشه را لیست کنید. باید Build.java و Build.class را با هم ببینید. منبع همان چیزی است که ویرایش میکنید. فایل کلاس همان چیزی است که اجرا میکنید. مبتدیها گاهی دنبال صفحه میروند در حالی که فایل غلط را ویرایش میکنند — Build.java را باز کنید، ذخیره کنید، ترجمه کنید، بعد اجرا کنید.
اگر javac Build.java را پیدا نمیکند، پوشهٔ فعلی و املای نام فایل، از جمله B بزرگ، را چک کنید. اگر اجرا چیزی چاپ نمیکند، تأیید کنید main هنوز خطوط println را دارد. اگر بعد از افزودن built صفحه فقط ok نشان میدهد، احتمالاً ترجمهٔ دوم را رد کردهاید.
Compiling را جای درخت package یا بستهبندی jar ندانید. آن موضوعات منتظرند. این صفحه یک کلاس عمومی، دو صفحهٔ روشن، و جفت javac / java را نگه میدارد.
قبل از Mini Project
میتوانید کلاس عمومی Build را نگه دارید، در دموی اول ok چاپ کنید، در دموی دوم ok بعد built چاپ کنید، با javac Build.java ترجمه کنید، Build.class را ببینید، و java Build را بدون پسوند .java اجرا کنید. جدول ترجمه را از اجرا جدا میکند. صفحهٔ بعد Mini Project است، جایی که برنامهٔ کوچک را از تکههایی که دارید میسازید.
دموهای Build را برای جفت روشن ترجمهواجرا نگه دارید. هنگام تمرین Compiling فایلهای جمعبندی Recap را از این صفحه دور نگه دارید. هنگام تمرین Compiling دموهای تاس Random را از این صفحه دور نگه دارید. کار Mini Project را تا آن درس از این صفحه دور نگه دارید. آن عادتها ایستگاه کنترل قبل از ادامه است. وقتی صفحهٔ یکخطی ok یا صفحهٔ دوخطی ok بعد built را نشان دهد، Compiling کار این درس را کرده و برای Mini Project آمادهاید.
یک پاس آخر روی پوشه: یک Build عمومی، Build.class حاضر بعد از javac، بدون انتظار صفحهکلید، بدون import اجباری Random یا LocalDate، فرمان اجرا بدون .java. یکبار دیگر روی دموی باز javac Build.java و java Build را اجرا کنید. اگر صفحه هنوز ok یا ok بعد built را نشان دهد، شکل Compiling محکم است و کورس میتواند در صفحهٔ بعد به Mini Project برود. در هر خواندن یک عادت ترجمهٔ روشن نگه دارید تا هر پاس همان نقشه را بیاموزد.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود