javadoc(1) Basic Tools javadoc(1) نام (NAME) javadoc - تولید صفحات HTML مستندات API از فایلهای منبع Java. خلاصه دستور (SYNOPSIS) javadoc {packages|source-files} [options] [@argfiles] packages نام بستههایی که میخواهید مستندسازی کنید، جدا شده با فاصله، برای نمونه java.lang java.lang.reflect java.awt. اگر میخواهید زیربستهها را نیز مستندسازی کنید، از گزینهٔ -subpackages برای تعیین بستهها استفاده کنید. بهطور پیشفرض، javadoc بستههای مشخصشده را در دایرکتوری جاری و زیردایرکتوریهای آن جستجو میکند. از گزینهٔ -sourcepath برای تعیین فهرست دایرکتوریهایی که بستهها در آنها جستجو شوند استفاده نمایید. source-files نام فایلهای منبع Java که میخواهید مستندسازی کنید، جدا شده با فاصله، برای نمونه Class.java Object.java Button.java. بهطور پیشفرض، javadoc کلاسهای مشخصشده را در دایرکتوری جاری جستجو میکند. با این حال، میتوانید مسیر کامل به فایل کلاس را مشخص کرده و از نویسههای عام (wildcard) استفاده کنید، برای نمونه /home/src/java/awt/Graphics*.java. همچنین میتوانید مسیر را بهصورت نسبی نسبت به دایرکتوری جاری تعیین نمایید. options گزینههای خط فرمان، جدا شده با فاصله. بخش گزینهها (Options) را ببینید. @argfiles نام فایلهایی که فهرستی از گزینههای دستور javadoc، نام بستهها و نام فایلهای منبع را به هر ترتیبی در بر دارند. توضیحات (DESCRIPTION) دستور javadoc اعلانها و کامنتهای مستندسازی را در مجموعهای از فایلهای منبع Java تجزیه کرده و مجموعهای متناظر از صفحات HTML تولید میکند که (بهطور پیشفرض) کلاسهای public و protected، کلاسهای تودرتو (اما نه کلاسهای داخلی ناشناس)، رابطها (interfaces)، سازندهها (constructors)، متدها (methods) و فیلدها (fields) را توصیف میکنند. میتوانید از دستور javadoc برای تولید مستندات API یا مستندات پیادهسازی برای مجموعهای از فایلهای منبع استفاده کنید. میتوانید دستور javadoc را روی بستههای کامل، فایلهای منبع منفرد، یا هر دو اجرا کنید. هنگام مستندسازی بستههای کامل، میتوانید یا از گزینهٔ -subpackages برای پیمایش بازگشتی یک دایرکتوری و زیردایرکتوریهای آن استفاده کنید، یا فهرستی صریح از نامهای بسته را ارسال نمایید. هنگامی که فایلهای منبع منفرد را مستندسازی میکنید، فهرستی از نامهای فایلهای منبع Java را ارسال کنید. بخش مثالهای ساده (Simple Examples) را ببینید. پردازش فایلهای منبع (PROCESS SOURCE FILES) دستور javadoc فایلهایی را که پسوند منبع دارند و سایر فایلهای شرح دادهشده در بخش فایلهای منبع (Source Files) پردازش میکند. اگر دستور javadoc را با ارسال نامهای منفرد فایلهای منبع اجرا کنید، میتوانید دقیقاً تعیین کنید که کدام فایلهای منبع پردازش شوند. با این حال، بیشتر توسعهدهندگان بدین صورت کار نمیکنند، زیرا ارسال نام بستهها سادهتر است. دستور javadoc میتواند بدون تعیین صریح نام فایلهای منبع به سه روش اجرا شود: میتوانید نام بستهها را ارسال کنید، از گزینهٔ -subpackages استفاده نمایید، یا از نویسههای عام (wildcards) همراه با نام فایلهای منبع بهره ببرید. در این موارد، دستور javadoc تنها در صورتی یک فایل منبع را پردازش میکند که فایل تمام شرایط زیر را برآورده سازد: • پیشوند نام فایل (با حذف .java) یک نام کلاس معتبر باشد. • نام مسیر نسبت به ریشهٔ درخت منبع، پس از تبدیل جداکنندهها به نقطه، یک نام بستهٔ معتبر باشد. • عبارت package حاوی نام بستهٔ معتبر باشد. پردازش پیوندها (Processing Links) در حین یک اجرا، دستور javadoc پیوندهای ارجاعمتقاطع (cross-reference) را به نامهای بسته، کلاس و عضوی که بخشی از آن اجرا هستند اضافه میکند. پیوندها در مکانهای زیر ظاهر میشوند. برای شرح برچسبهای @، بخش برچسبهای Javadoc (Javadoc Tags) را ببینید. • اعلانها (انواع بازگشتی، انواع آرگومانها، و انواع فیلدها). • بخشهای همچنین ببینید (See Also) که از برچسبهای @see تولید شدهاند. • متن درونخطی تولید شده از برچسبهای {@link}. • نام استثناها که از برچسبهای @throws تولید شدهاند. • پیوندهای Specified by به اعضای رابط و پیوندهای Overrides به اعضای کلاس. بخش Method Comment Inheritance را ببینید. • جدولهای خلاصهای که بستهها، کلاسها و اعضا را فهرست میکنند. • درختهای وراثت بسته و کلاس. • نمایه (index). میتوانید با استفاده از گزینههای -link و -linkoffline، پیوندهایی را به متنهای موجود برای کلاسهایی که در خط فرمان گنجانده نشدهاند (اما بهطور جداگانه تولید شدهاند) بیفزایید. جزئیات پردازش (Processing Details) دستور javadoc در هر بار اجرا یک سند کامل ایجاد میکند. این دستور ساخت افزایشی (incremental build) انجام نمیدهد که نتایج اجراهای پیشین را ویرایش کرده یا مستقیماً ادغام کند. با این حال، دستور javadoc میتواند به نتایج حاصل از سایر اجراها پیوند دهد. پیادهسازی دستور javadoc به کامپایلر Java نیاز داشته و بر آن متکی است. دستور javadoc بخشی از دستور javac را فرامیخواند تا اعلانها را کامپایل کرده و از پیادهسازی اعضا چشمپوشی کند. دستور javadoc یک بازنمایی درونی غنی از کلاسها شامل سلسلهمراتب کلاسها و روابط استفاده میسازد تا HTML را تولید نماید. دستور javadoc همچنین مستندات ارائهشده توسط کاربر را از کامنتهای مستندسازی در کد منبع استخراج میکند. بخش کامنتهای مستندسازی (Documentation Comments) را ببینید. دستور javadoc روی فایلهای منبعی که فایلهای ساختگیِ صرف (stub files) بدون بدنهٔ متد هستند نیز اجرا میشود. این بدان معناست که میتوانید در مراحل اولیهٔ طراحی پیش از پیادهسازی API، کامنتهای مستندسازی بنویسید و دستور javadoc را اجرا کنید. اتکا به کامپایلر اطمینان میدهد که خروجی HTML دقیقاً با پیادهسازی واقعی مطابقت داشته باشد؛ پیادهسازیای که ممکن است بهجای کد منبع صریح، بر کدهای ضمنی متکی باشد. برای نمونه، دستور javadoc سازندههای پیشفرضی را که در فایلهای کلاس کامپایلشده موجودند ولی در کد منبع وجود ندارند، مستندسازی میکند. در بسیاری از موارد، دستور javadoc به شما اجازه میدهد تا برای فایلهای منبع با کدهای ناقص یا دارای خطا نیز مستندات تولید کنید. میتوانید پیش از اتمام تمام اشکالزداییها و عیبیابیها، مستندات را ایجاد نمایید. دستور javadoc بررسیهای اولیهای روی کامنتهای مستندسازی انجام میدهد. هنگامی که دستور javadoc ساختار درونی خود را برای مستندسازی میسازد، تمام کلاسهای ارجاعدادهشده را بارگذاری میکند. به همین دلیل، دستور javadoc باید بتواند همهٔ کلاسهای ارجاعشده را، اعم از کلاسهای راهانداز (bootstrap classes)، افزونهها (extensions)، یا کلاسهای کاربر بیابد. به بخش How Classes Are Found در آدرس http://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html مراجعه کنید. بهطور معمول، کلاسهایی که ایجاد میکنید باید یا بهعنوان یک افزونه بارگذاری شوند یا در مسیر کلاس (class path) دستور javadoc قرار گیرند..SS "داکلتهای JAVADOC (JAVADOC DOCLETS)" شما میتوانید محتوا و قالب خروجی دستور javadoc را با داکلتها سفارشیسازی کنید. دستور javadoc دارای یک داکلت درونی پیشفرض به نام داکلت استاندارد (standard doclet) است که مستندات API با قالب HTML تولید میکند. شما میتوانید داکلت استاندارد را تغییر دهید، از آن زیرکلاس بسازید، یا داکلت اختصاصی خود را بنویسید تا خروجیهایی در قالبهای HTML، XML، MIF، RTF یا هر قالب دلخواه دیگری تولید کند. هنگامی که یک داکلت سفارشی با گزینه -doclet تعیین نشده باشد، دستور javadoc از داکلت استاندارد پیشفرض استفاده میکند. دستور javadoc دارای گزینههای متعددی است که صرفنظر از داکلتِ در حال استفاده، در دسترس هستند. داکلت استاندارد مجموعهای تکمیلی از گزینههای خط فرمان را ارائه میدهد. بخش گزینهها (Options) را ببینید. فایلهای منبع (SOURCE FILES) دستور javadoc خروجیهایی تولید میکند که از انواع فایلهای منبع زیر سرچشمه میگیرند: فایلهای منبع زبان جاوا برای کلاسها (.java)، فایلهای توضیحات بسته، فایلهای توضیحات کلی (overview)، و فایلهای پردازشنشده گوناگون. این بخش همچنین فایلهای آزمون و فایلهای الگو را شرح میدهد که ممکن است در درخت منبع وجود داشته باشند، اما میخواهید مطمئن شوید که مستندسازی نمیشوند. فایلهای منبع کلاس (CLASS SOURCE FILES) هر کلاس یا رابط (interface) و اعضای آن میتوانند توضیحات مستندسازی مربوط به خود را در یک فایل منبع داشته باشند. بخش Documentation Comments را ببینید. فایلهای توضیحات بسته (PACKAGE COMMENT FILES) هر بسته میتواند توضیحات مستندسازی مربوط به خود را در فایل منبع اختصاصیاش داشته باشد که دستور javadoc آن را در صفحه خلاصه بسته (package summary) ادغام میکند. شما معمولاً هر مستنداتی را که برای کل بسته اعمال میشود در این توضیحات قرار میدهید. برای ایجاد یک فایل توضیحات بسته، میتوانید توضیحات خود را در یکی از فایلهای زیر قرار دهید: • فایل package-info.java میتواند شامل اعلان بسته، حاشیهنویسیهای بسته (package annotations)، توضیحات بسته و برچسبهای Javadoc باشد. استفاده از این فایل ترجیح داده میشود. • فایل package.html تنها شامل توضیحات بسته و برچسبهای Javadoc است و حاشیهنویسیهای بسته را نمیپذیرد. یک بسته میتواند یک فایل package.html تکی یا یک فایل package-info.java تکی داشته باشد، اما نباید شامل هر دوی آنها باشد. هر یک از این فایلها را در دایرکتوری بسته در درخت منبع و در کنار فایلهای منبع خود قرار دهید. فایل package-info.java فایل package-info.java میتواند شامل توضیح بستهای با ساختار زیر باشد. این توضیح پیش از اعلان بسته قرار میگیرد. نکته: جداکنندههای توضیح /** و */ باید وجود داشته باشند، اما میتوان از ستارههای ابتدای خطوط میانی صرفنظر کرد. /** * Provides the classes necessary to create an * applet and the classes an applet uses * to communicate with its applet context. *
* The applet framework involves two entities: * the applet and the applet context. * An applet is an embeddable window (see the * {@link java.awt.Panel} class) with a few extra * methods that the applet context can use to * initialize, start, and stop the applet. * * @since 1.0 * @see java.awt */ package java.lang.applet; فایل package.html فایل package.html میتواند شامل توضیح بستهای با ساختار زیر باشد. این توضیح در عنصر
قرار میگیرد. فایل: java/applet/package.html Provides the classes necessary to create an applet and the classes an applet uses to communicate with its applet context.The applet framework involves two entities: the applet and the applet context. An applet is an embeddable window (see the {@link java.awt.Panel} class) with a few extra methods that the applet context can use to initialize, start, and stop the applet. @since 1.0 @see java.awt فایل package.html یک فایل استاندارد HTML است و شامل اعلان بسته نمیشود. محتوای این فایل توضیحات، به استثنای یک مورد، به زبان HTML نوشته میشود. در توضیحات مستندسازی نباید از جداکنندههای توضیح /** و */ یا ستارههای ابتدای خط استفاده شود. هنگام نوشتن این توضیحات، نخستین جمله را خلاصهای درباره بسته قرار دهید و از گذاشتن عنوان یا هر متن دیگری میان تگ
و نخستین جمله خودداری کنید. میتوانید برچسبهای بسته را درج کنید. تمام برچسبهای بلوکی (block tags) باید پس از توضیحات اصلی قرار گیرند. اگر یک برچسب @see در فایل توضیحات بسته اضافه میکنید، باید نام کاملاً مشخص (fully qualified name) داشته باشد. پردازش فایل توضیحات هنگامی که دستور javadoc اجرا میشود، به دنبال فایل توضیحات بسته میگردد. در صورت یافتن فایل توضیحات بسته، دستور javadoc مراحل زیر را انجام میدهد: • توضیحات را جهت پردازش کپی میکند. برای package.html، دستور javadoc تمام محتوای میان تگهای HTML و را کپی میکند. میتوانید بخش را برای درج تگ
*/
فایلهای آزمون و الگو (TEST AND TEMPLATE FILES)
میتوانید فایلهای آزمون و الگو را در درخت سورس، در همان دایرکتوری یا در
زیردایرکتوریای از دایرکتوری قرارگیری فایلهای سورس ذخیره کنید. برای
جلوگیری از پردازش فایلهای آزمون و الگو، دستور javadoc را اجرا کرده و
نامهای تکتک فایلهای سورس را صراحتاً به آن ارسال کنید.
فایلهای آزمون، فایلهای سورس معتبر و قابل کامپایل هستند. فایلهای الگو
فایلهای سورس معتبر و سازگار نیستند، اما اغلب پسوند .java دارند.
فایلهای آزمون (Test Files)
اگر میخواهید فایلهای آزمون شما به یک بستهٔ بدون نام یا به بستهای غیر از
بستهٔ فایلهای سورس تعلق داشته باشند، فایلهای آزمون را در یک زیردایرکتوری
در زیر فایلهای سورس قرار دهید و یک نام نامعتبر به آن دایرکتوری اختصاص
دهید. اگر فایلهای آزمون را در همان دایرکتوریِ سورس قرار دهید و دستور
javadoc را با یک آرگومان خط فرمان که نشاندهندهٔ نام بسته است فراخوانی
کنید، فایلهای آزمون موجب هشدار یا خطا میشوند. اگر فایلها در
زیردایرکتوری با نام نامعتبر باشند، دایرکتوری فایلهای آزمون نادیده گرفته
شده و هیچ خطا یا هشداری صادر نمیشود. برای مثال، برای افزودن فایلهای
آزمون برای فایلهای سورس در com.package1، آنها را در زیردایرکتوریای با
یک نام بستهٔ نامعتبر قرار دهید. نام دایرکتوری زیر نامعتبر است زیرا حاوی
خط پیوند (hyphen) میباشد:
com/package1/test-files/
اگر فایلهای آزمون شما حاوی کامنتهای مستندات هستند، میتوانید یک اجرای
جداگانه از دستور javadoc را با ارسال نامهای فایلهای سورس آزمون با
استفاده از نویسههای عمومی (wildcards)، مانند com/package1/test-
files/*.java، برای تولید مستندات فایلهای آزمون برپا کنید.
فایلهای الگو (Template Files)
اگر میخواهید یک فایل الگو در دایرکتوری سورس باشد، اما هنگام اجرای دستور
javadoc خطایی تولید نکند، یک نام فایل نامعتبر مانند Buffer-
Template.java به آن بدهید تا از پردازش آن جلوگیری شود. دستور javadoc
تنها فایلهای سورسی را پردازش میکند که نام آنها پس از حذف پسوند .java،
یک نام کلاس معتبر باشد.
فایلهای تولیدشده (GENERATED FILES)
بهطور پیشفرض، دستور javadoc از یک doclet استاندارد استفاده میکند که
مستنداتی با قالببندی HTML تولید میکند. این doclet استاندارد، صفحههای
محتوای اصلی، ارجاع متقابل، و صفحههای پشتیبانی شرح دادهشده در اینجا را
تولید میکند. هر صفحهٔ HTML با یک فایل جداگانه متناظر است. دستور javadoc
دو نوع فایل تولید میکند. نوع اول بر اساس کلاسها و رابطها نامگذاری
میشود. نوع دوم حاوی خط پیوند است (مانند package-summary.html) تا از
تداخل با نوع اول فایلها جلوگیری شود.
صفحههای محتوای اصلی (BASIC CONTENT PAGES)
• یک صفحهٔ کلاس یا رابط (classname.html) برای هر کلاس یا رابطی که
مستندسازی میشود.
• یک صفحهٔ بسته (package-summary.html) برای هر بستهای که مستندسازی
میشود. دستور javadoc هر متن HTML ارائهشده در فایلی به نام
package.html یا package-info.java در دایرکتوری بسته در درخت سورس را
در بر میگیرد.
• یک صفحهٔ مرور کلی (overview-summary.html) برای کل مجموعهٔ بستهها. صفحهٔ
مرور کلی صفحهٔ نخست مستندات تولیدشده است. دستور javadoc هر متن HTML
ارائهشده در فایلی را که توسط گزینهٔ -overview مشخص شده در بر میگیرد.
صفحهٔ Overview تنها زمانی ایجاد میشود که دو یا چند نام بسته را به
دستور javadoc بدهید. بخشهای HTML Frames و گزینهها (Options) را
ببینید.
صفحههای ارجاع متقابل (CROSS-REFERENCE PAGES)
• یک صفحهٔ سلسلهمراتب کلاس برای کل مجموعهٔ بستهها (overview-tree.html).
برای مشاهدهٔ صفحهٔ سلسلهمراتب، روی Overview در نوار ناوبری و سپس روی
Tree کلیک کنید.
• یک صفحهٔ سلسلهمراتب کلاس برای هر بسته (package-tree.html). برای مشاهدهٔ
صفحهٔ سلسلهمراتب، به صفحهٔ یک بسته، کلاس یا رابط خاص بروید و برای نمایش
سلسلهمراتب آن بسته، روی Tree کلیک کنید.
• یک صفحهٔ استفاده برای هر بسته (package-use.html) و یک صفحهٔ استفادهٔ
مجزا برای هر کلاس و رابط (class-use/classname.html). صفحهٔ استفاده شرح
میدهد که چه بستهها، کلاسها، متدها، سازندهها و فیلدهایی از هر بخش از
کلاس، رابط یا بستهٔ مشخصشده استفاده میکنند. برای مثال، با فرض یک کلاس
یا رابط A، صفحهٔ استفادهٔ آن شامل زیرکلاسهای A، فیلدهای اعلانشده بهصورت
A، متدهایی که A برمیگردانند، و متدها و سازندگانی با پارامترهایی از
نوع A است. برای مشاهدهٔ صفحهٔ استفاده، به بسته، کلاس یا رابط رفته و روی
پیوند Use در نوار ناوبری کلیک کنید.
• یک صفحهٔ API منسوخشده (deprecated-list.html) که تمام APIهای منسوخشده و
جایگزینهای پیشنهادی آنها را فهرست میکند. از APIهای منسوخشده اجتناب
کنید زیرا ممکن است در پیادهسازیهای آینده حذف شوند.
• یک صفحهٔ مقادیر فیلدهای ثابت (constant-values.html) برای مقادیر
فیلدهای استاتیک.
• یک صفحهٔ فرم سریالسازیشده (serialized-form.html) که اطلاعاتی دربارهٔ
کلاسهای قابل سریالسازی و قابل برونریزی به همراه شرح فیلدها و متدها
ارائه میدهد. اطلاعات این صفحه برای پیادهسازان مجدد کاربرد دارد و نه
برای توسعهدهندگانی که میخواهند از API استفاده کنند. برای دسترسی به
صفحهٔ فرم سریالسازیشده، به هر کلاس سریالسازیشده بروید و در بخش See
Also کامنت کلاس، روی Serialized Form کلیک کنید. doclet استاندارد یک
صفحهٔ فرم سریالسازیشده تولید میکند که هر کلاسی (عمومی یا غیرعمومی) را
که Serializable را به همراه متدهای readObject و writeObject آن،
فیلدهایی که سریالسازی میشوند، و کامنتهای مستندات ناشی از تگهای
@serial، @serialField، و @serialData پیادهسازی کرده است فهرست میکند.
کلاسهای سریالپذیر عمومی را میتوان با علامتگذاری آنها (یا بستهٔ آنها)
با @serial exclude مستثنی کرد، و کلاسهای سریالپذیر با سطح دسترسی بسته
را میتوان با علامتگذاری آنها (یا بستهٔ آنها) با یک @serial include
گنجاند. از نگارش 1.4 به بعد، میتوانید فرم کامل سریالسازیشده را برای
کلاسهای عمومی و خصوصی با اجرای دستور javadoc بدون مشخص کردن گزینهٔ
-private تولید کنید. بخش گزینهها (Options) را ببینید.
• یک صفحهٔ نمایه (index-*.html) از تمام نامهای کلاسها، رابطها، سازندهها،
فیلدها و متدها، به ترتیب حروف الفبا. صفحهٔ نمایه برای یونیکد
بینالمللیسازی شده است و میتواند بهعنوان یک فایل واحد یا بهعنوان یک
فایل جداگانه برای هر نویسهٔ آغازین (مانند A–Z برای انگلیسی) تولید شود.
صفحههای پشتیبانی (SUPPORT PAGES)
• یک صفحهٔ راهنما (help-doc.html) که نوار ناوبری و صفحههای قبلی را شرح
میدهد. از -helpfile برای بازنویسی فایل راهنمای پیشفرض با فایل راهنمای
سفارشی خود استفاده کنید.
• یک فایل index.html که فریمهای HTML را برای نمایش ایجاد میکند. این
فایل را برای نمایش صفحهٔ نخست همراه با فریمها بارگذاری کنید. فایل
index.html هیچ محتوای متنی ندارد.
• چندین فایل فریم (*-frame.html) که حاوی فهرستهایی از بستهها، کلاسها و
رابطها هستند. فایلهای فریم، فریمهای HTML را نمایش میدهند.
• یک فایل فهرست بسته (package-list) که توسط گزینههای -link و
-linkoffline استفاده میشود. فایل فهرست بسته یک فایل متنی است که از
طریق پیوندها قابل دسترسی نیست.
• یک فایل برگهسبک (stylesheet.css) که مقدار محدودی از رنگ، خانوادهٔ قلم،
اندازهٔ قلم، سبک قلم و اطلاعات جایگیری در صفحههای تولیدشده را کنترل
میکند.
• یک دایرکتوری doc-files که فایلهای تصویری، نمونه، کد منبع یا دیگر
فایلهایی را که میخواهید در دایرکتوری مقصد کپی شوند نگهداری میکند. این
فایلها توسط دستور javadoc پردازش نمیشوند. این دایرکتوری پردازش نمیشود
مگر اینکه در درخت سورس وجود داشته باشد.
بخش گزینهها (Options) را ببینید..SS "فریمهای HTML (HTML FRAMES)" دستور
javadoc بر اساس مقادیر ارائهشده به آن، حداقل تعداد فریمهای ضروری (دو یا
سه) را تولید میکند. هنگامی که تنها یک نام بسته یا فایلهای منبع متعلق به
یک بسته واحد را به عنوان آرگومان به دستور javadoc میدهید، این دستور از
فهرست بستهها صرفنظر میکند. در عوض، دستور javadoc یک فریم در ستون سمت چپ
ایجاد میکند که فهرست کلاسها را نمایش میدهد. هنگامی که دو یا چند نام
بسته را ارسال میکنید، دستور javadoc فریم سومی ایجاد میکند که همه بستهها
و یک صفحه مرور کلی (overview-summary.html) را فهرست میکند. برای گذر از
فریمها، روی پیوند No Frames کلیک کنید یا از صفحه overview-summary.html
وارد مجموعه صفحات شوید.
ساختار فایلهای تولیدشده (GENERATED FILE STRUCTURE)
فایلهای کلاس و رابط (interface) تولیدشده در همان سلسلهمراتب پوشهای
سازماندهی میشوند که فایلهای منبع و فایلهای کلاس جاوا سازماندهی شدهاند.
این ساختار شامل یک پوشه به ازای هر زیربسته (subpackage) است.
برای نمونه، سند تولیدشده برای کلاس java.applet.Applet در مسیر
java/applet/Applet.html قرار خواهد گرفت.
ساختار فایل برای بسته java.applet با فرض اینکه نام پوشه مقصد apidocs
باشد، در ادامه آمده است. تمام فایلهایی که شامل واژه frame هستند،
همانطور که اشاره شده در فریمهای بالا-چپ یا پایین-چپ ظاهر میشوند. تمام
فایلهای HTML دیگر در فریم سمت راست نمایش داده میشوند.
پوشهها پررنگ (bold) هستند. علامتهای ستاره (*) نشاندهنده فایلها و
پوشههایی است که اگر آرگومانهای ارائهشده به دستور javadoc به جای نام
بستهها، نام فایلهای منبع باشند، حذف میشوند. هنگامی که آرگومانها نام
فایلهای منبع باشند، یک فهرست بسته خالی ایجاد میشود. پوشه doc-files در
مقصد ایجاد نمیشود مگر اینکه در درخت منبع وجود داشته باشد. به بخش
Generated Files مراجعه کنید.
• apidocs: پوشه سطح بالا
• index.html: صفحه اولیه که فریمهای HTML را برپا میکند
• *overview-summary.html: فهرست بستهها به همراه خلاصهها
• overview-tree.html: سلسلهمراتب کلاسها برای همه بستهها
• deprecated-list.html: رابطهای برنامهنویسی (API) منسوخشده برای همه
بستهها
• constant-values.html: مقادیر فیلدهای ایستا (static) برای همه بستهها
• serialized-form.html: فرمهای سریالسازیشده برای همه بستهها
• *overview-frame.html: همه بستهها برای نمایش در فریم بالا-چپ
• allclasses-frame.html: همه کلاسها برای نمایش در فریم پایین-چپ
• help-doc.html: راهنما درباره سازماندهی صفحات Javadoc
• index-all.html: نمایه پیشفرض ایجادشده بدون گزینه -splitindex
• index-files: پوشه ایجادشده با گزینه -splitindex
• index- در کامنت مستندسازی قرار دهید
در حالی که تورفتگی آن حفظ میشود. فاصلهها توسط مرورگرها نسبت به تبها به
شکلی یکدستتر تفسیر میشوند. تورفتگی نسبت به حاشیهی چپ سنجیده میشود (نه
نسبت به جداکنندهی /** یا برچسب ).
جملهی نخست (First Sentence)
نخستین جملهی هر کامنت مستندسازی باید یک جملهی خلاصهساز باشد که شامل
شرحی مختصر اما کامل از موجودیت اعلانشده باشد. این جمله در اولین نقطهای
که پس از آن یک فاصله، تب یا پایاندهندهی خط قرار گیرد، یا در نخستین تگ
بلوکی پایان مییابد. دستور javadoc این جملهی نخست را در خلاصهی اعضا
(member summary) در بالای صفحهی HTML کپی میکند.
اعلانهای چندفیلدی (Multiple-Field Declarations)
پلتفرم جاوا امکان اعلان چند فیلد را در یک عبارت واحد به شما میدهد، اما
این عبارت تنها میتواند یک کامنت مستندسازی داشته باشد که برای همهی
فیلدها کپی میشود. اگر برای هر فیلد کامنتهای مستندسازی مجزا میخواهید، هر
فیلد را در یک عبارت جداگانه اعلان کنید. برای نمونه، کامنت مستندسازی زیر
اگر در قالب یک اعلان واحد نوشته شود منطقی نیست و بهتر است در قالب دو
اعلان مدیریت شود:
/**
* The horizontal and vertical distances of point (x,y)
*/
public int x, y; // Avoid this
دستور javadoc مستندات زیر را از کد قبلی تولید میکند:
public int x
فاصلههای افقی و عمودی نقطهی (x, y).
public int y
فاصلههای افقی و عمودی نقطهی (x, y)..PP استفاده از برچسبهای سربرگ
(Header Tags)
هنگام نوشتن کامنتهای مستندسازی برای اعضا، بهتر است از برچسبهای سربرگ
HTML مانند و استفاده نشود، زیرا دستور javadoc یک سند
ساختاریافته کامل ایجاد میکند و این برچسبهای ساختاری ممکن است با
قالببندی سند تولیدشده تداخل داشته باشند. با این حال، میتوانید از این
سربرگها در کامنتهای کلاس و بسته (package) برای ایجاد ساختار مورد نظر
خود استفاده کنید.
وراثت کامنت متد (METHOD COMMENT INHERITANCE)
دستور javadoc اجازه وراثت کامنت متد را در کلاسها و رابطها (interfaces)
میدهد تا متنهای جاافتاده را پر کند یا به صورت صریح کامنتهای متد را به
ارث ببرد. سازندهها (constructors)، فیلدها و کلاسهای تو در تو (nested
classes) کامنتهای مستندسازی را به ارث نمیبرند.
نکته: فایل منبع متدِ به ارث بردهشده باید در مسیری که توسط گزینه
-sourcepath مشخص شده است قرار داشته باشد تا کامنت مستندسازی آن برای کپی
کردن در دسترس باشد. نه کلاس و نه بسته آن نیازی به ارسال از طریق خط
فرمان ندارند. این رفتار برخلاف نسخه 1.3.n و نسخههای پیشین است که در
آنها کلاس حتماً باید یک کلاس مستندشده میبود.
پر کردن متن جاافتاده
هنگامی که توضیحات اصلی، یا برچسبهای @return، @param یا @throws در کامنت
یک متد وجود نداشته باشند، دستور javadoc توضیحات اصلی یا کامنت برچسب
متناظر را از متدی که آن را بازنویسی (override) یا پیادهسازی (implement)
کرده است (در صورت وجود) کپی میکند. بخش «وراثت کامنت متد» (Method
Comment Inheritance) را ببینید.
هنگامی که برچسب @param برای یک پارامتر خاص وجود ندارد، کامنت آن پارامتر
از متد بالاتر در سلسلهمراتب وراثت کپی میشود. هنگامی که برچسب @throws
برای یک استثنای خاص وجود ندارد، برچسب @throws تنها در صورتی کپی میشود
که آن استثنا اعلان شده باشد.
این رفتار برخلاف نسخه 1.3 و نسخههای پیشین است که در آنها وجود هرگونه
توضیحات اصلی یا برچسب مانع از به ارث رسیدن تمام کامنتها میشد.
بخش «برچسبها و گزینههای Javadoc» را ببینید.
وراثت صریح
برچسب درونخطی {@inheritDoc} را در توضیحات اصلی متد یا کامنت برچسبهای
@return، @param یا @throws درج کنید. توضیحات اصلی یا کامنت برچسب به ارث
رسیده متناظر در همان مکان کپی میشود.
وراثت کلاس و رابط (CLASS AND INTERFACE INHERITANCE)
وراثت کامنت در تمام حالتهای ممکنِ وراثت از کلاسها و رابطها رخ میدهد:
• هنگامی که یک متد در یک کلاس، متدی را در یک سوپرکلاس (superclass)
بازنویسی (override) میکند
• هنگامی که یک متد در یک رابط، متدی را در یک رابط والد (superinterface)
بازنویسی میکند
• هنگامی که یک متد در یک کلاس، متدی را در یک رابط پیادهسازی (implement)
میکند
در دو حالت نخست، دستور javadoc زیرعنوان Overrides را در مستنداتِ متدِ
بازنویسیکننده تولید میکند. پیوندی به متدی که بازنویسی شده اضافه میشود،
چه کامنت به ارث برده شده باشد چه نشده باشد.
در حالت سوم، هنگامی که یک متد در یک کلاس مشخص، متدی را در یک رابط
پیادهسازی میکند، دستور javadoc زیرعنوان Specified by را در مستنداتِ متدِ
پیادهسازیکننده تولید میکند. پیوندی به متدی که پیادهسازی شده قرار
میگیرد، چه کامنت به ارث برده شده باشد چه نشده باشد.
الگوریتم کامنتهای متد (METHOD COMMENTS ALGORITHM)
اگر متدی کامنت مستندسازی نداشته باشد، یا شامل برچسب {@inheritDoc} باشد،
دستور javadoc از الگوریتم زیر برای یافتن یک کامنت کاربردی استفاده
میکند. این الگوریتم طوری طراحی شده است که خاصترین کامنت مستندسازیِ
قابلاعمال را بیابد و رابطها را بر سوپرکلاسها ترجیح دهد:
1. در هر رابطِ مستقیماً پیادهسازیشده (یا ارثبریشده/extended) به ترتیبی
که پس از کلمه implements (یا extends) در اعلان متد ظاهر میشوند،
جستجو کنید. از اولین کامنت مستندسازی یافتشده برای این متد استفاده
کنید.
2. اگر مرحله ۱ در یافتن کامنت مستندسازی ناموفق بود، کل این الگوریتم را
به صورت بازگشتی بر روی هر رابط مستقیماً پیادهسازیشده (یا ارثبریشده)
به همان ترتیبی که در مرحله ۱ بررسی شدند، اعمال کنید.
3. هنگامی که مرحله ۲ در یافتن کامنت مستندسازی ناموفق باشد و این
ساختار، کلاسی به غیر از کلاس Object باشد (نه یک رابط):
1. اگر سوپرکلاس دارای یک کامنت مستندسازی برای این متد است، از آن
استفاده کنید.
2. اگر مرحله ۳-الف در یافتن کامنت مستندسازی ناموفق بود، کل این
الگوریتم را به صورت بازگشتی روی سوپرکلاس اعمال کنید.
برچسبهای جاوا داک (JAVADOC TAGS)
دستور javadoc برچسبهای ویژهای را که درون کامنت مستندسازی جاوا قرار
گرفتهاند تجزیه میکند. برچسبهای javadoc به شما امکان میدهند تا یک API
کامل و خوشقالب را به طور خودکار از کد منبع خود تولید کنید. این برچسبها
با علامت اتساین (@) آغاز میشوند و حساس به بزرگ و کوچکی حروف هستند. آنها
باید با حروف بزرگ و کوچک دقیقاً همانگونه که نشان داده شدهاند تایپ شوند.
یک برچسب باید در ابتدای خط (پس از هر فاصله ابتدایی و ستاره اختیاری)
آغاز شود، در غیر این صورت به عنوان متن در نظر گرفته میشود. طبق عرف،
برچسبهای همنام با هم گروهبندی میشوند؛ برای مثال، تمام برچسبهای @see را
کنار هم قرار دهید. برای اطلاعات بیشتر، بخش «مکانهای قابل استفاده برای
برچسبها» (Where Tags Can Be Used) را ببینید.
برچسبها دارای انواع زیر هستند:
• برچسبهای بلوکی (Block tags): برچسبهای بلوکی را تنها در بخش برچسبها که
پس از توضیحات میآید قرار دهید. برچسبهای بلوکی به شکل @tag هستند.
• برچسبهای درونخطی (Inline tags): برچسبهای درونخطی را در هر کجای
توضیحات اصلی یا در کامنتهای برچسبهای بلوکی قرار دهید. برچسبهای
درونخطی در میان آکولادها محصور میشوند: {@tag}.
برای برچسبهای سفارشی، گزینه -tag tagname:Xaoptcmf:"taghead" را ببینید.
همچنین بخش «مکانهای قابل استفاده برای برچسبها» (Where Tags Can Be Used)
را ببینید.
شرح برچسبها (TAG DESCRIPTIONS)
@author name-text
معرفیشده در JDK 1.0
هنگامی که از گزینه -author استفاده میشود، یک مدخل «Author» با
متن نام مشخصشده به اسناد تولیدشده اضافه میکند. یک کامنت
مستندسازی میتواند شامل چندین برچسب @author باشد. شما میتوانید در
هر برچسب @author یک نام، یا در هر برچسب چندین نام را مشخص کنید.
در حالت اول، دستور javadoc یک ویرگول (,) و یک فاصله بین نامها
درج میکند. در حالت دوم، تمام متن بدون تجزیه شدن در سند تولیدشده
کپی میشود. بنابراین، اگر جداکننده نامِ بومیسازیشده دیگری به غیر
از ویرگول میخواهید، میتوانید از چندین نام در یک خط استفاده کنید.
مدخل @author را در How to Write Doc Comments for the Javadoc
Tool در
http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html#@author
ببینید.
{@code text}
معرفیشده در JDK 1.5
معادل با {@literal}.
متن را با قلم کد (code font) بدون تفسیر آن به عنوان نشانهگذاری
HTML یا برچسبهای تودرتوی Javadoc نمایش میدهد. این امکان را به
شما میدهد تا به جای موجودیتهای HTML (< و >)، از براکتهای
شکسته معمولی (< و >) در کامنتهای مستندسازی استفاده کنید، مانند
انواع پارامترها (