آشنایی با بایت کد در زبان برنامه نویسی جاوا

در این آموزش دو هدف کلی را مد نظر قرار خواهیم داد. هدف اول آن که قصد داریم نحوه ی اجرای یک برنامه جاوا از طریق cmd را بررسی کنیم و هدف دومی که داریم آشنایی با Bytecode است که در آموزش گذشته در مبحث مرتبط با ماشین مجازی جاوا با آن آشنا شدیم. در واقع در این آموزش خواهیم دید که ظاهر Bytecode به چه شکل است و پشت پرده چه اتفاقاتی برای سورس کد برنامه های جاوای ما می افتد. برای شروع کار داخل یکی از درایو های سیستم خود یک فولدر تحت عنوان My Program ایجاد می کنیم:

حال نیاز است تا برنامه Notepad ویندوز را باز کرده و به صورت زیر کدی را وارد آن نماییم:

همانطور که می بینیم ابتدا کلید واژه public را نوشته سپس از آنجا که می خواهیم یک برنامه جاوا ایجاد کنیم می بایست کلید واژه class را بنویسیم. توجه داشته باشیم که هر دوی این کلید واژه ها با حرف کوچک نوشته می شوند.

 هشدار
در واقع از آنجا که برنامه Notepad همانند IDE یی همچون Eclipse به صورت هوشمند خطاهای برنامه نویسی ما را نشان نخواهد داد، از اینرو می بایست تمام دقت خود را به خرج دهیم که مشکلی در برنامه نداشته باشیم چرا که در مراحل بعدی برنامه ما اجرا نخواهد شد.

سپس نامی را برای کلاس خود در نظر می گیریم که در اینجا نام HelloWorld را نوشته ایم (دقت کنیم که این نام برای خوانایی بیشتر به صورت PascalCase نوشته شده است.) همان طور که قبلاً گفته شد یک برنامه جاوا داخل دو علامت { } مرتبط با کلاس اصلی نوشته می شود بنابراین پس از نام کلاس یک علامت } قرار داده و سپس یک علامت { دیگر قرار می دهیم. نقطه ی شروع هر برنامه جاوا متدی است تحت عنوان main که می بایست داخل کلاس اصلی قرار گیرد بنابراین این متد را نیز به صورت زیر وارد برنامه خود می کنیم:

متد main را نیز به همراه دو علامت { } مرتبط با آن وارد برنامه خود می کنیم. حال قصد داریم تا به این برنامه کوچک خود دستور دهیم تا عبارت In the Name of God به معنی “به نام خدا” را نشان دهد. برای این منظور، از دستوری تحت عنوان ()System.out.println استفاده می کنیم:

در این مرحله برنامه ما تکمیل شده است می بایست آنرا ذخیره سازیم:

همان طور که در تصویر فوق مشخص است، از منوی اصلی روی گزینه File کلیک کرده سپس روی گزینه Save کلیک می کنیم (به عنوان راه کار جایگزین می توانیم بدون مراجعه به منوی File کلیک های Ctrl + S را به صورت هم زمان فشار دهیم):

در تصویر فوق می بینیم که پنجره ی Save As باز می شود. اکنون همانند تصویر فوق که با یک فلش مشخص شده است به فولدری روی سیستم می رویم که پیش از این تحت عنوان My Program ایجاد کردیم سپس در بخش File name نام HelloWorld.java را می نویسیم (توجه داشته باشیم که نامی انتخابی برای این فایل می بایست با نام انتخابی برای کلاس یکسان باشد و پسوند فایل هم حتماً java. باشد.) حال می توانیم روی دکمه Save کلیک کنیم. برای آن که بتوانیم برنامه خود را اجرا کنیم بایستی وارد محیط cmd شویم:

در این مرحله نیاز است تا ابتدا اطمینان حاصل کنیم که JDK روی سیستم ما نصب است. برای این منظور دستور زیر را وارد پنجره می کنیم:

همانطور که می بینیم ابتدا کلمه java را نوشته سپس یک فاصله قرار می دهیم و پس از آن یک علامت – قرا می دهیم و کلمه version را می نویسیم و در نهایت دکمه Enter را می زنیم و به محض زدن دکمه Enter اگر JDK روی سیستم ما نصب باشد مشخصات آن را به نمایش در خواهد آورد. همانطور که می بینیم نسخه جاوای نصب شده روی سیستم مورد استفاده، جاوای ۷ است (در صورتی که جاوا روی سیستم ما نصب نبود، طبق آموزش های گذشته، JDK را روی سیستم خود نصب می کنیم.) حال نیاز است تا به درایوی برویم که فولدر My Program در آن قرار دارد. برای این منظور دستور :d را در پنجره cmd می نویسیم سپس دکمه Enter را می زنیم:

می بینیم که وارد درایو d شدیم. حال نیاز است تا وارد فولدر My Program شویم. برای این منظور دستور cd\My Program را نوشته سپس دکمه Enter را می زنیم:

برای آن که بتوانیم محتویات این فولدر را ببینیم، دستور dir را وارد می کنیم:

می بینیم که در این فولدر صرفاً یک فایل به همان نامی که ذخیره کردیم وجود دارد. حال نیاز داریم تا برنامه جاوای خود را ابتدا Compile کنیم. به عبارت دیگر آن را به Bytecode یا همان زبان قابل فهم برای سیستم تبدیل کنیم. برای این منظور دستور javac که مخفف java compiler هست را نوشته یک فاصله قرار می دهیم سپس نام پروژه جاوای خود را می نویسیم که عبارت است از HelloWorld.java سپس دکمه Enter را می زنیم:

در این مرحله اگر مشکل خاصی پیش نیاید پس از زدن روی دکمه Enter زمان خیلی کمی طول کشیده می شود تا سیستم برنامه جاوای ما را Compile کند. برای آن که مطئمن شویم که برنامه ما Compile شده است به فولدر که پروژه خود را در آن ایجاد کردیم مراجعه می کنیم:

همانطور که در تصویر فوق مشخص شده است، علاوه بر فایلی که تحت عنوان HelloWorld.java ذخیره کرده بودیم -پس از Compile شدن برنامه- یک فایل جدید تحت عنوان HelloWorld.class ایجاد شده است که داخل آن همان زبان قابل فهم برای ماشین مجازی جاوا یا Bytecode قرار دارد. برای آن که ببینیم که این Bytecode به چه شکل است برنامه Notepad را باز کرده سپس همان طور که در تصویر زیر مشخص است این فایل را به صورت Drag and Drop وارد برنامه Notepad می کنیم:

به محض آن که نشانگر موس روی صفحه Notepad قرار گیرد یک علامت به علاوه کنار نشانگر نمایان خواهد شد. با دیدن علامت به علاوه می توانیم دکمه موس خود را رها سازیم تا فایل HelloWorld.class وارد برنامه Notepad شود (البته از طریق منوی File و گزینه Open هم می توان این فایل را داخل نرم افزار Notepad باز نمود):

برنامه ما به صورت بایت کد جاوا به صورت فوق خواهد بود. در واقع کد فوق به منزله کدی است که برای ماشین مجازی جاوا قابل فهم خواهد بود. حال با استفاده از این کد قابل فهم برای ماشین مجازی نصب شده در ویندوز برنامه خود را اجرا خواهیم کرد. برای این منظور دستور java HelloWorld را می نویسیم و در این مرحله نیازی نیست تا پسوند java یا class را برای نام برنامه خود در نظر بگیریم چرا که ماشین مجازی خود قادر به تشخیص فایل مورد نیاز خواهد بود سپس دکمه Enter را می زنیم:

همانطور که در اجرای فوق می بینیم برنامه ما به درستی اجرا شده و تنها دستور که در برنامه خود داشتیم مبنی بر نمایش عبارت In the Name of God اجرا می گردد.

شاید این مطالب را هم دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.