کامپایل و اجرای یک اپلیکیشن جاوا

چاپ

در این مقاله قصد داریم به ذخیره و کامپایل و اجرا و ویرایش یک اپلیکیشن جاوا بپردازیم. 

ذخیره کردن یک کلاس جاوا

هنگامی که شما یک کلاس جاوا را می نویسید، باید با استفاده از یک دستگاه ذخیره ساز همچون یک هارد یا DVD یا USB، آن را ذخیره کنید. در جاوا، اگر که یک کلاس از نوع public است(یعنی سطح دسترسی این کلاس که قبل از نام کلاس قرار می گیرد، public است) شما باید آن کلاس را در یک فایل ذخیره کنید که دقیقاً نامی مشابه داشته باشد و پسوند آن java. باشد. بعنوان مثال، کلاسی به نام First، باید در یک فایل به نام First.java ذخیره شود. همچنین باید نام فایل از لحاظ حروف بزرگ و کوچک، دقیقاً مشابه با نام کلاس باشد. در صورتی که پسوند فایل مورد نظر java. نباشد، کامپایلر جاوا نمی تواند تشخیص دهد که در درون این فایل یک کلاس جاوا قرار دارد. 

 نکته: ضمیمه ی A دربردارنده ی اطلاعات مهمی در زمینه ی ذخیره کردن و کامپایل کردن و اجرای یک اپلیکیشن جاوا است. 


کامپایل کردن یک کلاس جاوا

پس از اینکه شما اپلیکیشن خود را نوشتید و آن را ذخیره کردید، قبل از اینکه خروجی این اپلیکیشن را مشاهده کنید، باید دو گام را انجام دهید:

1. شما باید کلاسی را که نوشته اید( که به آن کد منبع گفته می شود) را به بایت کدها، کامپایل کنید.

2. شما باید با استفاده از مفسر جاوا، بایت کدهای تولید شده را به عبارات قابل اجرا تبدیل کنید.

برای اینکه کد منبع خود را با استفاده از خط فرمان(command line) کامپایل کنید، ابتدا باید به دایرکتوری یا پوشه ای که برنامه ی شما در آن ذخیره شده است بروید(در خط فرمان) و سپس کلمه ی javac را تایپ کرده و به دنبال آن نام فایل حاوی کد منبع را بنویسید. بعنوان مثال برای کامپایل کردن یک فایل به نام First.java می توانید دستور زیر را وارد کنید و کلید Enter را فشار دهید:  javac First.java

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

نکته: در هنگام کامپایل کردن، در صورتی که فایل کد منبع در مسیر جاری قرار ندارد، می توانید از یک مسیر کامل به همراه نام فایل مورد نظر استفاده کنید. بعنوان مثال می توانید به صورت زیر عمل کنید:  javac c:\java\MyClasses\Chapter.01\First.java

نکته: در محیط DOS، شما می توانید با استفاده از دستور cd به پوشه های دیگر بروید. بعنوان مثال برای رفتن از پوشه ی جاری به یک زیرپوشه با نام MyClass، می توانید دستور cd MyClass را تایپ کنید و کلید Enter را فشار دهید. هنگامی که در داخل یک پوشه(دایرکتوری) قرار دارید، می توانید دستور \cd را تایپ کنید و کلید Enter را فشار دهید تا به دایرکتوری ریشه برگردید. 

در صورتی که پیغام خطای " دستور مورد نظر تشخیص داده نشد" را دریافت می کنید، ممکن است یکی از گزینه های زیر اتفاق افتاده باشند:

 در صورتی که شما یک خطای مربوط به زبان برنامه نویسی را مشاهده می کنید، یک یا چند خطای نحوی(سینتکسی) در کد منبع وجود دارد. دوباره یاد آوری می کنیم که، یک خطای نحوی درواقع یک خطای برنامه نویسی است که هنگامی اتفاق می افتد که شما در برنامه ی خود در هنگام تایپ کردن کدها اشتباه کنید و یا دستورات آن زبان برنامه نویسی را اشتباه وارد کنید. بعنوان مثال اگر یک کلاس به نام first( با حرف f کوچک) در کد منبع داشته باشید، اما ان فایل را به نام First.java (با حرف F بزرگ) ذخیره کرده باشید، به هنگام کامپایل کردن این اپلیکیشن با پیغام خطایی مواجه خواهید شد. این پیغام خطا به این دلیل ایجاد می شود که جاوا نسبت به حروف کوچک و بزرگ حساس است و نام کلاس public ما باید دقیقا مشابه با نامی باشد که آن را ذخیره می کنیم. در صورتی که چنین خطایی برای شما به وقوع پیوست، شما باید فایل دربردارنده ی کد منبع را دوباره باز کنید و به اصلاح کدها بپردازید. 

 نکته: در ضمیمه ی A می توانید اطلاعاتی را در مورد نحوه ی عیب یابی بیاموزید. 

اگر که شما بعد از کامپایل کردن کد مورد نظر که در یک فایل به نام First.java قرار دارد، هیچ خطایی را دریافت نکنید، نشانه ی این است که اپلیکیشن مورد نظر با موفقیت کامپایل شده است و یک فایل به نام First.class ایجاد می شود و در پوشه ای که فایل منبع( متن کدها)در آن قرار دارد، ذخیره می شود. پس از اینکه مشاهده کردید که کامپایل با موفقیت انجام شد، شما قادر خواهید بود که فایل کلاس مورد نظر را در هر کامپیوتری که دارای مفسر زبان جاوا است، اجرا نمایید. 

 


اجرای یک اپلیکیشن جاوا

برای اجرای اپلیکیشن First با استفاده از خط فرمان، دستور java First را تایپ کنید. همان طور که در زیر مشاهده می کنید، عکس 1.10 خروجی این اپلیکیشن را در پنجره ی command (خط فرمان) نشان می دهد. در این مثال شما می توانید مشاهده کنید که کلاس First در یک پوشه به نام Java در داخل درایو C، ذخیره شده است. 

 

نکته: هر از چند گاهی که در یک کلاس جاوا تغییراتی را ایجاد می کنید و سپس آن را دوباره کامپایل کرده و اجرا می کنید، باز هم نسخه ی قدیمی اجرا می شود. ساده ترین راه حل این است که فایل با پسوند class. را حذف کنید و عملیات کامپایل را دوباره اجرا کنید. برنامه نویسان به این کار، ساخت تمیز(clean build) می گویند. 


 اصلاح یک کلاس در جاوا

بعد از اینکه خروجی اپلیکیشن مورد نظر را مشاهده نمودید، ممکن است تصمیم بگیرید که آن کلاس را ویرایش و اصلاح کنید تا یک نتیجه ی متفاوت را به دست بیاورید. بعنوان مثال، ممکن است بخواهید خروجی اپلیکیشن First به صورت زیر باشد:

My new and improved
Java application

برای ایجاد خروجی جدید، ابتدا باید فایل متنی که دربردارنده ی کلاس مورد نظر است را ویرایش کنید. شما نیاز دارید تا رشته ی موجود در این کلاس را تغییر دهید و سپس یک دستور خروجی دیگر برای تولید رشته ی دوم ایجاد کنید. عکس 1.11 کلاسی را نشان می دهد که خروجی را تغییر می دهد:

همان طور که مشاهده می کنید، تغییراتی در کلاس First به وجود آمده است. یکی از این تغییرات این است که عبارت ;("System.out.println("My new and improved اضافه شده است و ( در عبارت دوم در عکس بالا) کلمه ی First در دستور ()println حذف شده است. اما اگر شما در فایل مورد نظر تغییراتی را همچون عکس 1.11 انجام دهید و سپس فایل را ذخیره کرده و با تایپ کردن java First در خط فرمان، برنامه را اجرا کنید، خروجی جدید مشاهده نخواهد شد و تنها خروجی قبلی(قدیمی) نمایش داده خواهد شد. حتی اگر شما یک فایل که دربردارنده ی کد منبع اصلاح شده ی ما است را بعنوان یک کلاس ذخیره کنید، فایل کلاسی که قبلا آن را کامپایل کرده اید، اجرا خواهد شد. علت این است که پس از اینکه شما فایل مورد نظر را با نام First.java ذخیره کردید، هنوز نسخه ی قدیمی کامپایل شده ی کلاس مورد نظر با همین نام در کامپیوتر شما وجود دارد. بنابراین قبل از اینکه بتوانید کدهای منبع جدید را اجرا کنید باید کارهای زیر را انجام دهید:

1. فایل مورد نظر که در آن تغییرات انجام شده است، را ذخیره کنید( از همان نام فایل استفاده کنید).

2. اکنون با استفاده از دستور javac کلاس مورد نظر را کامپایل کنید.

3. حالا بایت کدها را با استفاده از دستور java ترجمه و اجرا کنید.

عکس 1.12 خروجی جدید را نمایش می دهد.

نکته: هنگامی که شما گام های بالا را انجام دهید، نسخه ی جدید، جایگزین نسخه ی اصلی فایل کامپایل شده با پسوند class. می شود و اپلیکیشن جدید اجرا می شود. اکنون دیگر نسخه ی اصلی از بین رفته است. هنگامی که شما یک کلاس را اصلاح می کنید( و در آن تغییراتی را انجام می دهید) باید تصمیم بگیرید که آیا می خواهید نسخه ی اصلی را نگه داری کنید یا نه. اگر که قصد دارید نسخه ی اصلی را نگه داری کنید، باید برای نسخه ی جدید ( که ایجاد کرده اید) یک کلاس و نام فایل جدید در نظر بگیرید.


دو گزینه ی صحیح و یک گزینه ی غلط

 در سه گزینه ی زیر، گزینه ای که اشتباه است را مشخص کنید:

1. در صورتی که در زبان برنامه نویسی جاوا، یک کلاس از نوع public است، شما باید آن کلاس را در یک فایل با نامی مشابه و با پسوند java. ذخیره کنید. 

2. برای کامپایل کردن یک فایل به نام MyProgram.java باید عبارت java MyProgram را تایپ کنید، اما برای اجرای این برنامه باید عبارت java MyProgram.java را تایپ کنید. 

3. یک خطای سینتکسی(نحوی)، درواقع یک خطای برنامه نویسی است و زمانی رخ می دهد که شما در برنامه ی خود خطای تایپی داشته باشید یا از آن زبان برنامه نویسی به صورت نادرست استفاده کنید. یک برنامه که حاوی خطای سینتکسی باشد، کامپایل نخواهد شد.

پاسخ: گزینه ی شماره 2 اشتباه است. برای کامپایل کردن برنامه ای به نام MyProgram.java باید عبارت javac MyProgram.java را تایپ کنید و برای اجرا کردن آن برنامه باید عبارت java MyProgram را تایپ کنید.