JAVADOC(1) JDK Commands JAVADOC(1) نام (NAME) javadoc - ابزار تولید صفحات HTML مستندات API از فایلهای منبع جاوا خلاصه دستور (SYNOPSIS) javadoc [options] [packagenames] [sourcefiles] [@files] options گزینههای خط فرمان را مشخص میکند که با فاصله از هم جدا میشوند. بخشهای گزینههای استاندارد javadoc، گزینههای اضافی javadoc، گزینههای استاندارد برای داکلت استاندارد، و گزینههای اضافی برای داکلت استاندارد را ببینید. packagenames نام بستههایی را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا میشوند، برای مثال java.lang java.lang.reflect java.awt. اگر میخواهید زیربستهها را نیز مستندسازی کنید، از گزینه -subpackages برای مشخص کردن بستهها استفاده کنید. بهطور پیشفرض، javadoc به دنبال بستههای مشخصشده در دایرکتوری جاری و زیردایرکتوریهای آن میگردد. از گزینه -sourcepath برای تعیین فهرست دایرکتوریهای محل جستجوی بستهها استفاده کنید. sourcefiles نام فایلهای منبع جاوا را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا شدهاند، برای مثال Class.java Object.java Button.java. بهطور پیشفرض، javadoc کلاسهای مشخصشده را در دایرکتوری جاری جستجو میکند. با این حال، میتوانید مسیر کامل فایل کلاس را مشخص کرده و از نویسههای عام (wildcard) استفاده کنید، برای مثال /home/src/java/awt/Graphics*.java. همچنین میتوانید مسیر را نسبت به دایرکتوری جاری مشخص کنید. @files نام فایلهایی را مشخص میکند که شامل فهرستی از گزینههای ابزار javadoc، نام بستهها و نام فایلهای منبع به هر ترتیبی هستند. توضیحات (DESCRIPTION) ابزار javadoc اعلانها و کامنتهای مستندسازی را در مجموعهای از فایلهای منبع جاوا تجزیه کرده و آنها را با استفاده از یک بخش پشتی (back-end) با قابلیت اتصال به نام داکلت (doclet) پردازش میکند. داکلت استاندارد (standard doclet) موردی است که بهطور پیشفرض استفاده میشود و میتواند صفحات HTML متناظری تولید کند که کلاسهای عمومی و محافظتشده، کلاسهای تو در تو و کلاسهای به صورت ضمنی اعلانشده (اما نه کلاسهای داخلی ناشناس)، رابطها، سازندهها، متدها و فیلدها را توصیف میکنند. داکلت استاندارد محتوای کامنتهای مستندسازی را مطابق با JavaDoc Documentation Comment Specification for the Standard Doclet تفسیر میکند. تگهای سفارشی در کامنتهای مستندسازی به وسیله tagletها پشتیبانی میشوند. میتوانید از ابزار javadoc و داکلت استاندارد برای تولید مستندات API یا مستندات پیادهسازی برای مجموعهای از فایلهای منبع استفاده کنید. میتوانید ابزار javadoc را روی کل بستهها، فایلهای منبع منفرد، یا هر دو اجرا کنید. هنگام مستندسازی کل بستهها، میتوانید از گزینه -subpackages یا برای پیمایش بازگشتی یک دایرکتوری و زیردایرکتوریهای آن، یا برای ارسال فهرستی صریح از نامهای بسته استفاده کنید. هنگامی که فایلهای منبع منفرد را مستندسازی میکنید، فهرستی از نامهای فایل منبع جاوا را ارسال کنید. کامنتهای مستندسازی (Documentation Comments) ابزار javadoc از کامنت مستندسازی (در صورت وجود) که بلافاصله پیش از شروع اعلان قرار دارد استفاده میکند؛ چه اعلان یک یادداشت (annotation)، تغییردهنده (modifier) یا نام اعلانشده باشد. اگر چندین کامنت مستندسازی قبل از اعلان وجود داشته باشد، فقط آخرین کامنت (نزدیکترین به اعلان) استفاده خواهد شد. اگر هرگونه کامنت مستندسازی پس از شروع اعلان وجود داشته باشد، نادیده گرفته میشود. برای بررسی هرگونه کامنت مستندسازی اضافی یا نامناسب، کد منبع خود را با گزینه -Xlint در javac، یا به طور خاصتر، با -Xlint:dangling-doc-comments کامپایل کنید. درون یک فایل منبع، میتوانید با استفاده از @SuppressWarnings("dangling-doc-comments") بر روی یک اعلان دربرگیرنده مناسب، هشدارهای ایجادشده توسط این گزینهها را بیصدا کنید. انطباق و سازگاری (Conformance) داکلت استاندارد محتوای کامنتهای مستندسازی را برای انطباق اعتبارسنجی نمیکند و تلاشی برای تصحیح خطاهای موجود در کامنتهای مستندسازی انجام نمیدهد. به هر کسی که javadoc را اجرا میکند توصیه میشود از مشکلاتی که ممکن است هنگام تولید خروجی ناسازگار یا خروجی حاوی محتوای اجرایی مانند جاوااسکریپت رخ دهد آگاه باشد. داکلت استاندارد ویژگی DocLint را برای کمک به توسعهدهندگان در تشخیص مشکلات رایج در کامنتهای مستندسازی ارائه میدهد؛ اما همچنین توصیه میشود خروجی تولیدشده با ابزارهای مناسب اعتبارسنجی انطباق و سایر ابزارهای بررسی ارزیابی شود. برای جزئیات بیشتر در مورد الزامات انطباق برای اسناد HTML5، بخش Conformance requirements for authors [https://html.spec.whatwg.org/multipage/introduction.html#conformance-requirements-for-authors] در مشخصات HTML5 را ببینید. برای جزئیات بیشتر در مورد مسائل امنیتی مرتبط با صفحات وب، صفحه پروژه امنیت برنامههای کاربردی وب باز (OWASP) [https://www.owasp.org] را ببینید. گزینهها (OPTIONS) دستور javadoc از گزینههای خط فرمان برای هر دو ابزار اصلی javadoc و داکلت انتخابشده فعلی پشتیبانی میکند. اگر داکلت دیگری مشخص نشده باشد، از داکلت استاندارد (standard doclet) استفاده میشود. گزینههای به سبک GNU (یعنی آنهایی که با -- شروع میشوند) میتوانند به جای نویسههای فاصله، از علامت مساوی (=) برای جدا کردن نام گزینه از مقدار آن استفاده کنند. گزینههای استاندارد javadoc گزینههای اصلی javadoc زیر معادل گزینههای متناظر javac هستند. برای توضیحات دقیق استفاده از این گزینهها، بخش گزینههای استاندارد در javac را ببینید: • --add-modules • -bootclasspath • --class-path، -classpath، یا -cp • --disable-line-doc-comments • --enable-preview • -encoding • -extdirs • --limit-modules • --module • --module-path یا -p • --module-source-path • --release • --source یا -source • --source-path یا -sourcepath • --system • --upgrade-module-path گزینههای زیر گزینههای اصلی javadoc هستند که معادل گزینه متناظری در javac نیستند: -breakiterator جمله اول توضیحات در یک کامنت مستندسازی را با استفاده از نمونهای از java.text.BreakIterator برای تشخیص پایان جملات محاسبه میکند. قواعد مورد استفاده به محلی (locale) جاری بستگی دارد: برای مثال، در زبان انگلیسی، پایان جمله پس از یک نقطه، علامت سوال، یا علامت تعجب همراه با یک فاصله زمانی که کلمه بعدی با یک حرف بزرگ شروع میشود رخ میدهد. (این حالت برای مدیریت اکثر اختصارات در نظر گرفته شده است، مانند "The serial no. is valid"، اما مواردی مانند "Mr. Smith" را پردازش نمیکند.) اگر زبان محلی جاری انگلیسی نباشد، این گزینه بهطور پیشفرض فعال است. اگر زبان محلی جاری انگلیسی باشد و گزینه -breakiterator مشخص نشده باشد، از یک الگوریتم پیشفرض ساده استفاده میشود که صرفاً به دنبال یک نقطه و به دنبال آن یک فاصله میگردد. در کامنتهای سنتی /**...*/، جستجو برای پایان جمله اول با یک تگ بلوکی HTML مانند
،
یا تگ سربرگ خاتمه مییابد. در کامنتهای مارکداون
///، جستجو برای پایان جمله اول از هر نویسهای که داخل محدودههای
کد (code spans) و پیوندها قرار دارد رد میشود و با پایان بلوک
اولیه (که با یک خط خالی یا شروع بلوک بعدی مانند لیست، خط تفکیک
یا بلوک HTML مشخص میشود) پایان مییابد. جمله اول توضیحات در یک
کامنت مستندسازی در جداول خلاصه، صفحات نمایه و سایر موقعیتهایی که
به یک خلاصه کوتاه نیاز است استفاده میشود. برای کنترل صریحتر در
هر کامنت مستندسازی منفرد، محتوای جمله اول را در یک تگ {@summary
...} یا در صورت کاربرد در یک تگ {@return ...} قرار دهید.
-doclet class
خروجی را با استفاده از یک داکلت جایگزین تولید میکند. از نام
کاملاً واجد شرایط (fully qualified) استفاده کنید. این داکلت
محتوا را تعریف کرده و خروجی را قالببندی میکند. اگر گزینه
-doclet استفاده نشود، ابزار javadoc از داکلت استاندارد برای
تولید فرمت پیشفرض HTML استفاده میکند. این کلاس باید رابط
jdk.javadoc.doclet.Doclet را پیادهسازی کند. مسیر این کلاس توسط
گزینه -docletpath تعریف میشود.
-docletpath path
محل یافتن فایلهای کلاس داکلت (مشخصشده با گزینه -doclet) و هر
فایل JAR وابسته به آن را مشخص میکند. اگر فایل کلاس شروع در یک
فایل JAR باشد، این گزینه مسیر آن فایل JAR را مشخص میکند.
میتوانید یک مسیر مطلق یا یک مسیر نسبی نسبت به دایرکتوری جاری
مشخص کنید. اگر path شامل چندین مسیر یا فایل JAR باشد، باید با
دونقطه (:) در لینوکس و macOS، و نقطهویرگول (;) در ویندوز از هم
جدا شوند. زمانی که کلاس شروع doclet از قبل در مسیر جستجو باشد،
این گزینه ضروری نیست.
-exclude pkglist
بهطور بدون قید و شرط، بستههای مشخصشده و زیربستههای آنها را از
فهرستی که توسط -subpackages تشکیل شده است مستثنی میکند. این
گزینه آن بستهها را حتی اگر توسط یک گزینه -subpackages قبلی یا
بعدی گنجانده شده باشند، حذف میکند.
مثال زیر شامل java.io، java.util، و java.math (در میان دیگران)
میشود، اما بستههای ریشهدار در java.net و java.lang را مستثنی
میکند. توجه داشته باشید که این مثالها java.lang.ref را که یک
زیربسته از java.lang است، مستثنی میکنند. آرگومانها در تمام
سیستمهای عامل با دونقطه از هم جدا میشوند.
• لینوکس و macOS:
javadoc -sourcepath /home/user/src -subpackages java -exclude java.net:java.lang
• ویندوز:
javadoc -sourcepath \user\src -subpackages java -exclude java.net:java.lang
--expand-requires (transitive|all)
به ابزار javadoc دستور میدهد تا مجموعه ماژولهایی را که باید
مستندسازی شوند گسترش دهد. بهطور پیشفرض، فقط ماژولهایی که صریحاً
در خط فرمان داده شدهاند مستندسازی میشوند. از مقادیر زیر
پشتیبانی میکند:
• transitive: علاوه بر این، تمام وابستگیهای انتقالی (transitive)
مورد نیاز آن ماژولها را نیز شامل میشود.
• all: تمام وابستگیها را شامل میشود.
--help، -help، -h، یا -?
خلاصهای از گزینههای استاندارد را چاپ میکند.
--help-extra یا -X
خلاصهای از مجموعه گزینههای اضافی را چاپ میکند.
-Jflag مقدار flag را مستقیماً به محیط زمان اجرای جاوا (JRE) که ابزار
javadoc را اجرا میکند ارسال میکند. برای مثال، اگر باید اطمینان
حاصل کنید که سیستم ۳۲ مگابایت حافظه برای پردازش مستندات تولیدشده
کنار میگذارد، گزینه -Xmx را به این صورت فراخوانی میکنید: javadoc
-J-Xmx32m -J-Xms32m com.mypackage. توجه داشته باشید که -Xms
اختیاری است زیرا فقط اندازه حافظه اولیه را تنظیم میکند، که زمانی
مفید است که حداقل مقدار حافظه مورد نیاز را میدانید.
هیچ فاصلهای بین J و flag وجود ندارد. از گزینه -version برای
گزارش نسخه JRE مورد استفاده برای اجرای ابزار javadoc استفاده
کنید.
javadoc -J-version
java version "17" 2021-09-14 LTS
Java(TM) SE Runtime Environment (build 17+35-LTS-2724)
Java HotSpot(TM) 64-Bit Server VM (build 17+35-LTS-2724, mixed mode, sharing)
-locale name
محلی (locale) را که ابزار javadoc هنگام تولید مستندات استفاده
میکند مشخص میسازد. آرگومان نام محلی است، همانطور که در مستندات
java.util.Locale شرح داده شده است، مانند en_US (انگلیسی، ایالات
متحده) یا en_US_WIN (گونه ویندوز).
مشخص کردن یک محلی باعث میشود ابزار javadoc فایلهای منبع آن محلی
را برای پیامهایی مانند رشتههای نوار ناوبری، سربرگهای فهرستها و
جداول، محتوای فایل راهنما، کامنتهای موجود در فایل stylesheet.css
و غیره انتخاب کند. همچنین ترتیب مرتبسازی فهرستهای مرتبشده بر
اساس الفبا و جداکننده جمله را برای تعیین پایان جمله اول مشخص
میکند. گزینه -locale محلی متن کامنت مستندسازی مشخصشده در
فایلهای منبع کلاسهای مستندشده را تعیین نمیکند.
-package
فقط کلاسها و اعضای بسته، محافظتشده (protected) و عمومی (public)
را نمایش میدهد.
-private
همه کلاسها و اعضا را نمایش میدهد.
-protected
فقط کلاسها و اعضای محافظتشده و عمومی را نمایش میدهد. این حالت
پیشفرض است.
-public
فقط کلاسها و اعضای عمومی را نمایش میدهد.
-quiet پیامها را خاموش میکند تا فقط هشدارها و خطاها ظاهر شوند تا مشاهده
آنها آسانتر شود. همچنین رشته version را سرکوب میکند.
--show-members value
مشخص میکند کدام اعضا (فیلدها، متدها یا سازندهها) مستندسازی شوند،
که در آن value میتواند هر یک از موارد زیر باشد:
• public --- فقط اعضای عمومی را نمایش میدهد
• protected --- اعضای عمومی و محافظتشده را نمایش میدهد؛ این حالت
پیشفرض است
• package --- اعضای عمومی، محافظتشده و بسته را نمایش میدهد
• private --- تمام اعضا را نمایش میدهد
--show-module-contents value
سطح جزئیات مستندسازی اعلانهای ماژول را مشخص میکند، که در آن
value میتواند api یا all باشد.
--show-packages value
مشخص میکند کدام بستههای ماژول مستندسازی شوند، که در آن value
میتواند بستههای صادرشده (exported) یا تمام بستهها (all) باشد.
--show-types value
مشخص میکند کدام نوعها (کلاسها، رابطها و غیره) مستندسازی شوند، که
در آن value میتواند هر یک از موارد زیر باشد:
• public --- فقط نوعهای عمومی را نمایش میدهد
• protected --- نوعهای عمومی و محافظتشده را نمایش میدهد؛ این
حالت پیشفرض است
• package --- نوعهای عمومی، محافظتشده و بسته را نمایش میدهد
• private --- تمام نوعها را نمایش میدهد
-subpackages subpkglist
مستندات را از فایلهای منبع در بستههای مشخصشده و بهطور بازگشتی در
زیربستههای آنها تولید میکند. این گزینه هنگام افزودن زیربستههای
جدید به کد منبع مفید است زیرا آنها بهطور خودکار گنجانده میشوند.
هر آرگومان بسته هر زیربسته سطح بالا (مانند java) یا بسته کاملاً
واجد شرایط (مانند javax.swing) است که نیازی به داشتن فایلهای
منبع ندارد. آرگومانها در تمام سیستمهای عامل با دونقطه از هم جدا
میشوند. استفاده از نویسههای عام (wildcard) مجاز نیست. از
-sourcepath برای مشخص کردن محل یافتن بستهها استفاده کنید. این
گزینه فایلهای منبعی را که در درخت منبع هستند اما به بستهها تعلق
ندارند پردازش نمیکند.
برای مثال، دستورات زیر مستندات را برای بستههایی به نام java و
javax.swing و تمام زیربستههای آنها تولید میکنند:
• لینوکس و macOS:
javadoc -d docs -sourcepath /home/user/src -subpackages java:javax.swing
• ویندوز:
javadoc -d docs -sourcepath \user\src -subpackages java:javax.swing
-verbose
پیامهای با جزئیات بیشتر را در حین اجرای ابزار javadoc ارائه
میدهد. بدون گزینه -verbose، پیامها برای بارگیری فایلهای منبع،
تولید مستندات (یک پیام به ازای هر فایل منبع) و مرتبسازی ظاهر
میشوند. گزینه -verbose باعث چاپ پیامهای اضافی میشود که تعداد
میلیثانیهها را برای تجزیه هر فایل منبع جاوا مشخص میکند.
--version
اطلاعات نسخه را چاپ میکند.
-Werror
در صورت بروز هرگونه هشدار، یک خطا گزارش میدهد.
توجه داشته باشید که اگر یک فایل منبع جاوا شامل یک کلاس به صورت ضمنی
اعلانشده باشد، آن کلاس و اعضای عمومی، محافظتشده و بسته آن بدون در نظر
گرفتن گزینههایی مانند --show-types، --show-members، -private،
-protected، -package و -public مستندسازی خواهند شد. اگر --show-members
با مقدار private مشخص شود یا اگر -private استفاده شود، تمام اعضای خصوصی
یک کلاس به صورت ضمنی اعلانشده نیز مستندسازی خواهند شد.
گزینههای اضافی javadoc
توجه: گزینههای اضافی برای javadoc ممکن است بدون اطلاع قبلی تغییر کنند.
گزینههای اضافی javadoc زیر معادل گزینههای متناظر javac هستند. برای
توضیحات دقیق استفاده از این گزینهها، بخش گزینههای اضافی در javac را
ببینید:
• --add-exports
• --add-reads
• --patch-module
• -Xmaxerrs
• -Xmaxwarns
گزینههای استاندارد برای داکلت استاندارد (Standard Doclet)
گزینههای زیر توسط داکلت استاندارد ارائه شدهاند.
--add-script file
فایل file را به عنوان یک فایل جاوااسکریپت اضافی به مستندات
تولیدشده اضافه میکند. این گزینه میتواند یک یا چند بار برای
تعیین فایلهای اسکریپت اضافی استفاده شود.
برای مثال:
javadoc --add-script extra.js -d docs-out mypackage
--add-stylesheet file
فایل file را به عنوان یک شیوهنامه (stylesheet) اضافی به مستندات
تولیدشده اضافه میکند. این گزینه میتواند یک یا چند بار برای
تعیین فایلهای شیوهنامه اضافی استفاده شود.
برای مثال:
javadoc --add-stylesheet new_stylesheet_1.css --add-stylesheet new_stylesheet_2.css -d docs-out mypackage
--allow-script-in-comments
اجازه استفاده از جاوااسکریپت در کامنتهای مستندسازی و در
گزینههایی که مقدار آنها html-code است.
-author
متن هر تگ author را در مستندات تولیدشده شامل میکند.
-bottom html-code
متنی را که باید در پایین هر صفحه تولیدشده قرار گیرد مشخص میکند.
متن میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت باید
در علامت نقلقول قرار گیرد. در هر تگ HTML از موجودیتهای کاراکتر
داخلی برای علامتهای نقلقول استفاده کنید.
-charset name
مجموعه نویسه (character set) HTML را برای این سند مشخص میکند.
نام باید یک نام ترجیحی MIME باشد همانطور که در ثبت IANA،
مجموعههای نویسه [http://www.iana.org/assignments/character-sets]
مشخص شده است.
برای مثال:
javadoc -charset "iso-8859-1" mypackage
این دستور خط زیر را در سربرگ هر صفحه تولیدشده درج میکند:
تگ meta در استاندارد HTML (4197265 و 4137321)، نمایش سند
HTML [http://www.w3.org/TR/REC-
html40/charset.html#h-5.2.2] شرح داده شده است.
-d directory
دایرکتوری مقصدی را مشخص میکند که ابزار javadoc فایلهای HTML
تولیدشده را در آن ذخیره میکند. اگر گزینه -d را حذف کنید، فایلها
در دایرکتوری جاری ذخیره میشوند. مقدار directory میتواند مطلق یا
نسبی نسبت به دایرکتوری جاری باشد. دایرکتوری مقصد هنگام اجرای
ابزار javadoc بهطور خودکار ایجاد میشود.
• لینوکس و macOS: برای مثال، دستور زیر مستندات را برای بسته
com.mypackage تولید کرده و نتایج را در دایرکتوری /user/doc/
ذخیره میکند:
javadoc -d /user/doc/ com.mypackage
• ویندوز: برای مثال، دستور زیر مستندات را برای بسته
com.mypackage تولید کرده و نتایج را در دایرکتوری \user\doc\
ذخیره میکند:
javadoc -d \user\doc\ com.mypackage
-docencoding name
کدگذاری فایلهای HTML تولیدشده را مشخص میکند. نام باید یک نام
ترجیحی MIME باشد همانطور که در ثبت IANA، مجموعههای نویسه
[http://www.iana.org/assignments/character-sets] مشخص شده است.
سه گزینه برای استفاده در یک اجرای javadoc در دسترس است. گزینه
-encoding برای کدگذاری فایلهای منبع ورودی استفاده میشود، در حالی
که گزینههای -docencoding و -charset برای کدگذاری فایلهای
نوشتهشده توسط ابزار استفاده میشوند. از سه گزینه موجود، حداکثر
یک گزینه کدگذاری ورودی و یک گزینه کدگذاری خروجی استفاده میشود.
اگر هر دو گزینه کدگذاری ورودی و خروجی مشخص شوند، باید مقدار
یکسانی داشته باشند. اگر هیچ گزینه خروجی مشخص نشود، بهطور پیشفرض
از کدگذاری ورودی استفاده میشود.
برای مثال:
javadoc -docencoding "iso-8859-1" mypackage
-docfilessubdirs
کپی عمیق دایرکتوریهای doc-files را فعال میکند. زیردایرکتوریها و
تمام محتویات بهطور بازگشتی در مقصد کپی میشوند. برای مثال،
دایرکتوری doc-files/example/images و تمام محتویات آن کپی میشوند.
از گزینه -excludedocfilessubdir برای مستثنی کردن زیردایرکتوریهای
خاص استفاده کنید.
-doctitle html-code
عنوانی را برای قرار دادن در نزدیکی بالای فایل خلاصه نمای کلی
(overview summary) مشخص میکند. متن مشخصشده در تگ title به عنوان
یک سربرگ سطح اول وسطچین، مستقیماً زیر نوار ناوبری قرار میگیرد.
تگ title میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت
باید در علامت نقلقول قرار گیرد. علامتهای نقلقول داخلی باید گریز
داده شوند (escaped). برای مثال:
javadoc -doctitle "My Library
v1.0" com.mypackage
-excludedocfilessubdir name1,name2...
هنگام کپی بازگشتی زیردایرکتوریهای doc-files، هر زیردایرکتوری با
نامهای دادهشده را مستثنی میکند. بخش -docfilessubdirs را ببینید.
به دلایل تاریخی، : میتواند در هر کجای آرگومان به عنوان جداکننده
به جای , استفاده شود.
-footer html-code
این گزینه دیگر پشتیبانی نمیشود و یک هشدار گزارش میدهد.
-group name g1,g2...
بستههای مشخصشده، یا ماژولها هنگام مستندسازی کد ماژولار را در
صفحه نمای کلی (Overview) با هم گروهبندی میکند. به دلایل تاریخی،
: میتواند در هر کجای آرگومان به جای , به عنوان جداکننده استفاده
شود.
-header html-code
متن سربرگ را برای قرار دادن در بالای هر فایل خروجی مشخص میکند.
سربرگ در سمت راست نوار ناوبری قرار میگیرد. مقدار header میتواند
حاوی تگهای HTML و فاصله باشد، اما در این صورت باید در علامت
نقلقول قرار گیرد. از نویسههای گریز برای علامتهای نقلقول داخلی
در سربرگ استفاده کنید. برای مثال:
javadoc -header "My Library
v1.0" com.mypackage
-helpfile filename
فایلی حاوی متنی را مشخص میکند که هنگام کلیک روی پیوند HELP در
نوار ناوبری نمایش داده میشود. اگر این گزینه داده نشود، ابزار
javadoc یک صفحه پیشفرض ایجاد میکند که مورد استفاده قرار میگیرد.
-html5 این گزینه بیاثر (no-op) است و صرفاً برای سازگاری با گذشته حفظ شده
است.
--javafx یا -javafx
قابلیت JavaFX را فعال میکند. اگر کلاسهای کتابخانه JavaFX در
مسیر ماژول شناسایی شوند، این گزینه بهطور پیشفرض فعال است.
-keywords
تگهای کلمه کلیدی در HTML را برای هر کلاس به فایل تولیدشده
اضافه میکند. این تگها میتوانند به موتورهای جستجویی که به دنبال
تگهای میگردند در یافتن صفحات کمک کنند. اکثر موتورهای
جستجو که کل اینترنت را جستجو میکنند به تگهای نگاه
نمیکنند، زیرا صفحات ممکن است از آنها سوءاستفاده کنند. موتورهای
جستجوی ارائهشده توسط شرکتهایی که جستجوهای خود را به وبسایت خود
محدود میکنند، میتوانند از بررسی تگهای بهرهمند شوند.
تگهای شامل نام کاملاً واجد شرایط کلاس و نامهای غیر واجد
شرایط فیلدها و متدها هستند. سازندهها گنجانده نمیشوند زیرا با
نام کلاس یکسان هستند. برای مثال، کلاس String با این کلمات کلیدی
شروع میشود:
-link url
پیوندهایی به مستندات موجودِ تولیدشده توسط javadoc از کلاسهای
دارای ارجاع خارجی ایجاد میکند. آرگومان url نشانی وب مطلق یا
نسبی دایرکتوری حاوی مستندات خارجی تولیدشده با javadoc است.
میتوانید چندین گزینه -link را در یک اجرای ابزار javadoc مشخص
کنید تا به چندین سند پیوند داده شود.
باید یک فایل package-list یا element-list در این دایرکتوری url
وجود داشته باشد (در غیر این صورت، از گزینه -linkoffline استفاده
کنید).
توجه: فایلهای package-list و element-list توسط ابزار javadoc
هنگام تولید مستندات API ایجاد میشوند و نباید توسط کاربر تغییر
داده شوند.
هنگامی که از ابزار javadoc برای مستندسازی بستهها استفاده میکنید،
از فایل package-list برای تعیین بستههای اعلانشده در یک API
استفاده میکند. هنگامی که اسناد API را برای ماژولها تولید
میکنید، ابزار javadoc از فایل element-list برای تعیین ماژولها و
بستههای اعلانشده در یک API استفاده میکند.
ابزار javadoc نامها را از فایل فهرست مناسب میخواند و سپس به
بستهها یا ماژولها در آن نشانی وب پیوند میدهد.
هنگامی که ابزار javadoc اجرا میشود، مقدار url در پیوندهای ایجادشده کپی میشود. بنابراین، url باید نشانی وب دایرکتوری
باشد و نه یک فایل.
میتوانید از پیوند مطلق برای url استفاده کنید تا اسناد شما
بتوانند به سندی در هر وبسایتی پیوند داده شوند، یا میتوانید از
پیوند نسبی برای پیوند دادن صرفاً به یک مکان نسبی استفاده کنید.
اگر از پیوند نسبی استفاده میکنید، مقداری که ارسال میکنید باید
مسیر نسبی از دایرکتوری مقصد (مشخصشده با گزینه -d) به دایرکتوری
حاوی بستههای پیوندشده باشد. هنگامی که یک پیوند مطلق را مشخص
میکنید، معمولاً از پیوند HTTP استفاده میکنید. با این حال، اگر
میخواهید به یک فایلسیستم که فاقد وبسرور است پیوند دهید، میتوانید
از پیوند فایل استفاده کنید. تنها زمانی از پیوند فایل استفاده
کنید که هر کسی که میخواهد به مستندات تولیدشده دسترسی داشته باشد،
همان فایلسیستم را به اشتراک بگذارد. در همه موارد و در تمام
سیستمهای عامل، از اسلش به عنوان جداکننده استفاده کنید، چه URL
مطلق باشد یا نسبی.
-link https://///.../
-link http://///.../
-link file://///.../
-link //.../
--link-modularity-mismatch (warn|info)
مشخص میکند که آیا مستندات خارجی با ماژولار بودن نادرست (مانند
مستندات غیر ماژولار برای یک کتابخانه ماژولار، یا حالت معکوس)
باید به عنوان هشدار (warn) یا صرفاً یک پیام (info) گزارش شوند.
رفتار پیشفرض گزارش یک هشدار است.
-linkoffline url1 url2
این گزینه گونهای از گزینه -link است. هر دوی آنها پیوندهایی به
مستندات تولیدشده javadoc برای کلاسهای دارای ارجاع خارجی ایجاد
میکنند. میتوانید چندین گزینه -linkoffline را در یک اجرای ابزار
javadoc مشخص کنید.
از گزینه -linkoffline در موارد زیر استفاده کنید:
• پیوند دادن به سندی در وب که ابزار javadoc نمیتواند از طریق
اتصال وب به آن دسترسی داشته باشد.
• فایل package-list یا element-list سند خارجی یا قابل دسترسی
نیست یا در مکان URL وجود ندارد، اما در مکان دیگری وجود دارد و
میتواند توسط فایل package-list یا element-list (معمولاً محلی)
مشخص شود.
توجه: فایلهای package-list و element-list توسط ابزار javadoc
هنگام تولید مستندات API ایجاد میشوند و نباید توسط کاربر تغییر
داده شوند.
اگر url1 فقط در شبکه جهانی وب قابل دسترسی باشد، گزینه
-linkoffline این محدودیت را که ابزار javadoc برای تولید مستندات
باید اتصال وب داشته باشد برطرف میکند.
کاربرد دیگر گزینه -linkoffline به عنوان یک راه حل موقت برای
بهروزرسانی اسناد است. پس از اجرای ابزار javadoc روی مجموعه
کاملی از بستهها یا ماژولها، میتوانید ابزار javadoc را مجدداً روی
مجموعه کوچکتری از بستهها یا ماژولهای تغییریافته اجرا کنید، تا
فایلهای بهروزرسانیشده بتوانند دوباره در مجموعه اصلی درج شوند.
برای مثال، گزینه -linkoffline دو آرگومان میگیرد. اولی برای
رشتهای است که باید در پیوندهای تعبیه شود، و دومی به
ابزار javadoc میگوید فایل package-list یا element-list را کجا
پیدا کند.
مقدار url1 یا url2 نشانی وب مطلق یا نسبی دایرکتوری حاوی مستندات
تولیدشده خارجی javadoc است که میخواهید به آن پیوند دهید. در
صورت نسبی بودن، مقدار باید مسیر نسبی از دایرکتوری مقصد (مشخصشده
با گزینه -d) به ریشه بستههای پیوندشده باشد. بخش url در گزینه
-link را ببینید.
--link-platform-properties url
یک فایل ویژگیها (properties file) را مشخص میکند که برای پیکربندی
پیوندها به مستندات پلتفرم استفاده میشود.
انتظار میرود آرگومان url به یک فایل ویژگیها شامل یک یا چند مدخل
با قالب زیر اشاره کند، که در آن نسخه پلتفرم است
همانطور که به گزینه --release یا --source ارسال شده و
نشانی وب پایه مستندات API پلتفرم متناظر است:
doclet.platform.docs.=
به عنوان مثال، یک فایل ویژگیها حاوی نشانیهای وب برای
نسخههای ۱۵ تا ۱۷ ممکن است شامل خطوط زیر باشد:
doclet.platform.docs.15=https://example.com/api/15
doclet.platform.docs.16=https://example.com/api/16
doclet.platform.docs.17=https://example.com/api/17
اگر فایل ویژگیها حاوی مدخلی برای یک نسخه خاص نباشد، هیچ
پیوند پلتفرمی ایجاد نمیشود.
-linksource
یک نسخه HTML از هر فایل منبع (همراه با شماره خطوط) ایجاد کرده و
پیوندهایی به آنها از مستندات استاندارد HTML اضافه میکند.
پیوندها برای کلاسها، رابطها، سازندهها، متدها و فیلدهایی که
اعلانهای آنها در یک فایل منبع است ایجاد میشوند. در غیر این
صورت، پیوندها ایجاد نمیشوند، مانند سازندههای پیشفرض و کلاسهای
تولیدشده.
این گزینه تمام جزئیات پیادهسازی خصوصی را در فایلهای منبع
گنجاندهشده، شامل کلاسهای خصوصی، فیلدهای خصوصی و بدنه متدهای
خصوصی، بدون در نظر گرفتن گزینههای -public، -package، -protected
و -private نمایش میدهد. مگر اینکه از گزینه -private نیز استفاده
کنید، تمام کلاسها یا رابطهای خصوصی از طریق پیوندها قابل دسترسی
نیستند.
هر پیوند روی نام شناسه در اعلان آن ظاهر میشود. برای مثال، پیوند
به کد منبع کلاس Button روی کلمه Button خواهد بود:
public class Button extends Component implements Accessible
پیوند به کد منبع متد getLabel در کلاس Button روی کلمه
getLabel قرار دارد:
public String getLabel()
--main-stylesheet file یا -stylesheetfile file
مسیر یک فایل شیوهنامه جایگزین را مشخص میکند که شامل تعاریف
سبکهای CSS مورد استفاده در مستندات تولیدشده است. این گزینه به
شما امکان میدهد مقدار پیشفرض را لغو کنید. اگر این گزینه را مشخص
نکنید، ابزار javadoc یک شیوهنامه پیشفرض ایجاد کرده و از آن
استفاده میکند. نام فایل میتواند هر نامی باشد و به
stylesheet.css محدود نمیشود. گزینه --main-stylesheet فرم ترجیحی
است.
مثال خط فرمان:
javadoc --main-stylesheet main_stylesheet.css pkg_foo
-nocomment
کل بدنه کامنت، از جمله توضیحات اصلی و همه تگها را سرکوب کرده و
فقط اعلانها را تولید میکند. این گزینه به شما امکان میدهد از
فایلهای منبعی که در ابتدا برای هدف دیگری در نظر گرفته شده بودند
مجدداً استفاده کنید تا بتوانید در مراحل اولیه یک پروژه جدید،
اسکلت مستندات HTML را تولید نمایید.
-nodeprecated
از تولید هرگونه API منسوخشده (deprecated) در مستندات جلوگیری
میکند. این گزینه همان کاری را انجام میدهد که گزینه
-nodeprecatedlist انجام میدهد، به علاوه در بقیه بخشهای مستندات
نیز هیچ API منسوخشدهای تولید نمیکند. این گزینه هنگام نوشتن کد
زمانی که نمیخواهید حواستان با کدهای منسوخشده پرت شود مفید است.
-nodeprecatedlist
از تولید فایلی که حاوی فهرست APIهای منسوخشده است (deprecated-
list.html) و پیوند موجود در نوار ناوبری به آن صفحه جلوگیری
میکند. ابزار javadoc به تولید APIهای منسوخشده در سرتاسر بقیه
سند ادامه میدهد. این گزینه زمانی مفید است که کد منبع شما حاوی
هیچ API منسوخشدهای نباشد و بخواهید نوار ناوبری تمیزتری داشته
باشید.
--no-fonts
از گنجاندن فایلهای فونت در مستندات تولیدشده جلوگیری میکند. این
گزینه در صورتی که مستندات از یک شیوهنامه سفارشی استفاده کند که
فونتهای پیشفرض را به کار نمیبرد مفید است.
-nohelp
پیوند HELP را در نوار ناوبری بالای هر صفحه خروجی حذف میکند.
-noindex
نمایه (index) را از اسناد تولیدشده حذف میکند. نمایه بهطور
پیشفرض تولید میشود.
-nonavbar
از تولید نوار ناوبری، سربرگ و پاورقی که معمولاً در بالا و پایین
صفحات تولیدشده یافت میشوند، جلوگیری میکند. گزینه -nonavbar هیچ
تأثیری بر گزینه -bottom ندارد. گزینه -nonavbar زمانی مفید است
که فقط به محتوا علاقهمند هستید و نیازی به ناوبری ندارید، مانند
زمانی که فایلها را صرفاً برای چاپ به PostScript یا PDF تبدیل
میکنید.
--no-platform-links
از ایجاد پیوند به مستندات پلتفرم جلوگیری میکند. این پیوندها
بهطور پیشفرض تولید میشوند.
-noqualifier name1,name2...
فهرست واجد شرایطکنندهها (qualifiers) را از خروجی حذف میکند. نام
بسته از جاهایی که نام کلاس یا رابط ظاهر میشود حذف میشود. به
دلایل تاریخی، : میتواند در هر کجای آرگومان به عنوان جداکننده به
جای , استفاده شود.
مثال زیر تمام واجد شرایطکنندههای بسته را حذف میکند: -noqualifier
all.
مثال زیر واجد شرایطکنندههای بستههای java.lang و java.io را حذف
میکند: -noqualifier java.lang:java.io.
مثال زیر واجد شرایطکنندههای بستههایی را که با زیربستههای java و
com.sun شروع میشوند حذف میکند، اما javax را حذف نمیکند:
-noqualifier java.*:com.sun.*.
در جایی که یک واجد شرایطکننده بسته به دلیل رفتار قبلی ظاهر
میشود، نام میتواند به شکل مناسب کوتاه شود. این قاعده بدون در
نظر گرفتن اینکه آیا از گزینه -noqualifier استفاده شده است یا
خیر، اعمال میشود.
-nosince
بخشهای Since مرتبط با تگهای @since را از اسناد تولیدشده حذف
میکند.
-notimestamp
برچسب زمانی را که در یک کامنت HTML در بالای هر صفحه مخفی شده
است، سرکوب میکند. گزینه -notimestamp زمانی مفید است که میخواهید
ابزار javadoc را روی دو پایگاه کد منبع اجرا کنید و تفاوتهای بین
آنها را با diff بسنجید، زیرا از ایجاد تفاوت ناشی از برچسبهای
زمانی جلوگیری میکند. برچسب زمانی شامل شماره انتشار ابزار
javadoc است.
-notree
صفحات سلسلهمراتب کلاس و رابط را از اسناد تولیدشده حذف میکند.
اینها صفحاتی هستند که با استفاده از دکمه Tree در نوار ناوبری به
آنها میرسید. سلسلهمراتب بهطور پیشفرض تولید میشود.
--override-methods (detail|summary)
متدهای بازنویسیشده (overridden) را در بخشهای جزئیات یا خلاصه
مستندسازی میکند. مقدار پیشفرض detail است.
-overview filename
مشخص میکند که ابزار javadoc باید متن مستندات نمای کلی را از فایل
منبع مشخصشده توسط filename بازیابی کند و آن را در صفحه نمای کلی
(overview-summary.html) قرار دهد. یک مسیر نسبی مشخصشده با نام
فایل، نسبت به دایرکتوری کاری جاری است.
در حالی که میتوانید از هر نامی که میخواهید برای مقدار filename
استفاده کنید و آن را در هر کجای مسیر قرار دهید، معمول است که نام
آن را overview.html بگذارید و آن را در درخت منبع در دایرکتوری
حاوی بالاترین دایرکتوریهای بسته قرار دهید. در این مکان، هنگام
مستندسازی بستهها به هیچ مسیری نیاز نیست، زیرا گزینه -sourcepath
به این فایل اشاره میکند.
• لینوکس و macOS: برای مثال، اگر درخت منبع برای بسته java.lang
به صورت src/classes/java/lang/ باشد، میتوانید فایل نمای کلی را
در src/classes/overview.html قرار دهید.
• ویندوز: برای مثال، اگر درخت منبع برای بسته java.lang به صورت
src\classes\java\lang\ باشد، میتوانید فایل نمای کلی را در
src\classes\overview.html قرار دهید.
صفحه نمای کلی تنها زمانی ایجاد میشود که دو یا چند نام بسته را به
ابزار javadoc ارسال کنید. عنوان صفحه نمای کلی توسط -doctitle
تنظیم میشود.
-serialwarn
هشدارهای زمان کامپایل را برای تگهای مفقود @serial تولید میکند.
بهطور پیشفرض، Javadoc هیچ هشدار سریالی تولید نمیکند. از این
گزینه برای نمایش هشدارهای سریال استفاده کنید، که به مستندسازی
صحیح فیلدهای سریالیشدنی پیشفرض و متدهای writeExternal کمک میکند.
--since release(,release)*
مستندات را برای APIهایی که در نسخههای انتشار مشخصشده اضافه یا
تازه منسوخ شدهاند تولید میکند.
اگر تگ @since در کامنت مستندسازی یک عنصر در کد منبع مستندشده با
یک نسخه انتشار ارسالشده به عنوان آرگومان گزینه مطابقت داشته
باشد، اطلاعات مربوط به عنصر و نسخهای که در آن اضافه شده است در
صفحه "New API" گنجانده میشود.
اگر صفحه "Deprecated API" تولید شود و عنصر since از حاشیهنویسی
java.lang.Deprecated یک عنصر مستندشده با یک نسخه انتشار در
آرگومانهای گزینه مطابقت داشته باشد، اطلاعات مربوط به نسخهای که
عنصر در آن منسوخ شده است به صفحه "Deprecated API" اضافه میشود.
نسخههای انتشار با استفاده از مقایسه رشتهای حساس به حروف بزرگ و
کوچک مقایسه میشوند.
--since-label text
متن text مورد استفاده در سربرگ صفحه "New API" را مشخص میکند.
این ممکن است شامل اطلاعاتی درباره نسخههای پوشش داده شده در صفحه
باشد، برای مثال "New API in release 2.0" یا "New API since
release 1".
--snippet-path snippetpathlist
مسیرهای جستجو را برای یافتن فایلهای قطعات کد (snippets) خارجی
مشخص میکند. مقدار snippetpathlist میتواند شامل چندین مسیر باشد
که با جداکننده مسیر پلتفرم (; در ویندوز؛ : در سایر پلتفرمها) از
هم جدا شدهاند. داکلت استاندارد ابتدا زیردایرکتوری snippet-files
را در بسته حاوی قطعه کد جستجو میکند و سپس تمام دایرکتوریهای
موجود در فهرست دادهشده را جستجو مینماید.
-sourcetab tab-length
تعداد فاصلههایی را که هر تب در منبع اشغال میکند مشخص میسازد.
--spec-base-url url
نشانی وب پایه را برای نشانیهای وب نسبی در تگهای @spec مشخص
میکند، تا هنگام تولید پیوندها به هرگونه مشخصات خارجی استفاده
شود. این مقدار میتواند یک URL مطلق یا یک URL نسبی باشد، که در
این حالت نسبت به دایرکتوری پایه فایلهای خروجی تولیدشده ارزیابی
میشود. مقدار پیشفرض معادل {@docRoot}/../specs است.
-splitindex
فایل نمایه را به چندین فایل به صورت الفبایی تقسیم میکند، یک فایل
برای هر حرف، به علاوه یک فایل برای مدخلهای نمایهای که با نمادهای
غیر الفبایی شروع میشوند.
--syntax-highlight
برجستهسازی نحو (syntax highlighting) را برای قطعات کد در تگهای
{@snippet} و عناصر فعال میکند. برای snippetها،
ویژگی lang برای تعیین زبان قطعه کد استفاده میشود، که برای
snippetهای درونخطی بهطور پیشفرض "java" است و برای snippetهای
خارجی از پسوند فایل به دست میآید. در تگهای HTML ،
ویژگی class میتواند برای تعیین زبان قطعه کد به کار رود، همانطور
که در زیر نشان داده شده است:
...
اگر هیچیک از این ویژگیها موجود نباشد، تشخیص خودکار زبان
اعمال میشود. برای غیرفعال کردن برجستهسازی نحو برای یک
قطعه کد، زبان را با استفاده از یکی از سازوکارهای
شرحدادهشده در بالا روی "text" تنظیم کنید. زبانها و
قالبهای پشتیبانیشده توسط این گزینه عبارتند از: Java،
Properties، JSON، HTML و XML.
-tag name:locations:header
تگهای سفارشی تکآرگومانی را مشخص میکند. برای اینکه ابزار javadoc
املای نام تگها را بررسی کند، مهم است که برای هر تگ سفارشی موجود
در کد منبع یک گزینه -tag قرار دهید و تگهایی را که در اجرای فعلی
خروجی داده نمیشوند (با X) غیرفعال کنید. دونقطه (:) همیشه
جداکننده است. برای گنجاندن دونقطه در نام تگ، آن را با یک بکاسلش
(\) اسکیپ کنید. گزینه -tag عنوان تگ، یعنی header را به صورت
پررنگ (bold) در خروجی نمایش میدهد و در خط بعدی متن ناشی از
تکآرگومان آن قرار میگیرد. مشابه هر تگ بلوکی، متن آرگومان
میتواند حاوی تگهای درونخطی (inline) باشد که آنها نیز تفسیر
میشوند. خروجی شبیه به تگهای تکآرگومانی استاندارد مانند تگهای
@return و @author است. حذف مقدار header باعث میشود که name به
عنوان عنوان در نظر گرفته شود. مقدار locations فهرستی از نویسهها
است که انواع اعلانهایی را که تگ میتواند در آنها استفاده شود مشخص
میکند. نویسههای زیر را میتوان به صورت حروف بزرگ یا کوچک استفاده
کرد:
• A: تمام اعلانها
• C: سازندهها
• F: فیلدها
• M: متدها
• O: صفحه نمای کلی و سایر فایلهای مستندات در زیردایرکتوریهای
doc-files
• P: بستهها
• S: ماژولها
• T: نوعها (کلاسها و رابطها)
• X: هیچکجا: تگ غیرفعال است و نادیده گرفته میشود
ترتیبی که تگها در خط فرمان داده میشوند به عنوان ترتیبی که تگها
در خروجی تولیدشده ظاهر میشوند استفاده خواهد شد. میتوانید تگهای
استاندارد را به ترتیبی که در خط فرمان داده شده است با استفاده از
گزینه -tag بدون locations یا header شامل کنید.
-taglet class
نام کاملاً واجد شرایط تگلتی را که در تولید مستندات برای آن تگ
استفاده میشود مشخص میکند. از نام کاملاً واجد شرایط برای مقدار
class استفاده کنید. این تگلت همچنین تعداد آرگومانهای متنی را که
تگ سفارشی دارد تعریف میکند. تگلت آن آرگومانها را میپذیرد، آنها
را پردازش میکند و خروجی را تولید مینماید.
تگلتها برای تگهای بلوکی یا درونخطی مفید هستند. آنها میتوانند هر
تعداد آرگومان داشته باشند و رفتارهای سفارشی را پیادهسازی کنند،
مانند پررنگ کردن متن، قالببندی نقطهها، نوشتن متن در یک فایل، یا
راهاندازی فرآیندهای دیگر. تگلتها فقط میتوانند تعیین کنند که یک
تگ در کجا و به چه شکلی ظاهر شود. تمام تصمیمات دیگر توسط داکلت
گرفته میشود. یک تگلت نمیتواند کارهایی مانند حذف نام کلاس از
فهرست کلاسهای گنجاندهشده را انجام دهد. با این حال، میتواند
اثرات جانبی مانند چاپ متن تگ در یک فایل یا راهاندازی فرآیند
دیگری را اجرا کند. از گزینه -tagletpath برای مشخص کردن مسیر
تگلت استفاده کنید. مثال زیر تگلت To Do را بعد از Parameters و
جلوتر از Throws در صفحات تولیدشده درج میکند:
-taglet com.sun.tools.doclets.ToDoTaglet
-tagletpath /home/taglets
-tag return
-tag param
-tag todo
-tag throws
-tag see
به صورت متناوب، میتوانید از گزینه -taglet به جای گزینه
-tag آن استفاده کنید، اما خواندن آن ممکن است دشوار باشد.
-tagletpath tagletpathlist
مسیرهای جستجو را برای یافتن فایلهای کلاس تگلت مشخص میکند. مقدار
tagletpathlist میتواند شامل چندین مسیر با جدا کردن آنها با
جداکننده مسیر پلتفرم باشد (; در ویندوز؛ : در سایر پلتفرمها).
ابزار javadoc تمام زیردایرکتوریهای مسیرهای مشخصشده را جستجو
میکند.
-top html-code
متنی را برای قرار دادن در بالای هر فایل خروجی مشخص میکند.
-use صفحات استفاده (use) از کلاس و بسته را ایجاد میکند. شامل یک صفحه
Use برای هر کلاس و بسته مستندشده است. این صفحه توصیف میکند چه
بستهها، کلاسها، متدها، سازندهها و فیلدهایی از هر API کلاس یا
بسته مشخصشده استفاده میکنند. برای کلاس مفروض C، مواردی که از
کلاس C استفاده میکنند شامل زیرکلاسهای C، فیلدهای اعلانشده به
عنوان C، متدهایی که C را برمیگردانند، و متدها و سازندههایی با
پارامترهایی از نوع C هستند. برای مثال، میتوانید به صفحه Use
برای نوع String نگاه کنید. از آنجا که متد getName در کلاس
java.awt.Font نوع String را برمیگرداند، متد getName از String
استفاده میکند و بنابراین متد getName در صفحه Use برای String
ظاهر میشود. این گزینه فقط استفاده از API را مستند میکند، نه
پیادهسازی را. هنگامی که یک متد از String در پیادهسازی خود
استفاده میکند، اما یک رشته را به عنوان آرگومان نمیگیرد یا رشتهای
را برنمیگرداند، این به عنوان استفاده از String در نظر گرفته
نمیشود. برای دسترسی به صفحه تولیدشده Use، به کلاس یا بسته بروید
و روی پیوند Use در نوار ناوبری کلیک کنید.
-version
متن نسخه را در اسناد تولیدشده شامل میکند. این متن بهطور پیشفرض
حذف شده است. برای فهمیدن اینکه از چه نسخهای از ابزار javadoc
استفاده میکنید، از گزینه -J-version استفاده نمایید.
-windowtitle title
عنوانی را برای قرار دادن در تگ HTML مشخص میکند. متن
مشخصشده در تگ title در عنوان پنجره و در هر بوکمارک مرورگری
(مکانهای مورد علاقه) که شخصی برای این صفحه ایجاد میکند ظاهر
میشود. این عنوان نباید حاوی هیچ تگ HTML باشد زیرا مرورگر آنها
را به درستی تفسیر نمیکند. برای هر علامت نقلقول داخلی در تگ
title از نویسههای گریز استفاده کنید. اگر گزینه -windowtitle حذف
شود، ابزار javadoc از مقدار گزینه -doctitle برای گزینه
-windowtitle استفاده میکند. برای مثال:
javadoc -windowtitle "My Library" com.mypackage
گزینههای اضافی برای داکلت استاندارد (Standard Doclet)
موارد زیر گزینههای اضافی ارائهشده توسط داکلت استاندارد هستند و بدون
اطلاع قبلی ممکن است تغییر کنند. گزینههای اضافی کمتر مورد استفاده قرار
میگیرند یا پیشرفته تلقی میشوند.
--date date-and-time
مقداری را برای برچسب زمانی صفحات تولیدشده، در قالب ISO 8601
[https://www.iso.org/iso-8601-date-and-time-format.html] مشخص
میکند. مقدار مشخصشده باید در بازه ۱۰ سال از تاریخ و زمان فعلی
باشد. مشخص کردن همزمان هر دو گزینه -notimestamp و --date یک خطا
است. استفاده از یک مقدار خاص به این معنی است که مستندات
تولیدشده میتوانند بخشی از یک ساخت تکرارپذیر (reproducible build)
[https://reproducible-builds.org] باشند. اگر این گزینه داده
نشود، مقدار پیشفرض تاریخ و زمان فعلی است. برای مثال:
javadoc --date 2022-02-01T17:41:59-08:00 mypackage
--legal-notices (default|none|directory)
مکانی را مشخص میکند که فایلهای حقوقی و قانونی از آنجا به مستندات
تولیدشده کپی شوند. اگر گزینه مشخص نشده باشد یا با مقدار default
استفاده شود، فایلها از مکان پیشفرض کپی میشوند. اگر آرگومان با
مقدار none استفاده شود، هیچ فایلی کپی نمیشود. هر آرگومان دیگر
به عنوان دایرکتوری در نظر گرفته میشود که فایلهای حقوقی باید از
آن کپی شوند.
--no-frames
این گزینه دیگر پشتیبانی نمیشود و یک هشدار گزارش میدهد.
-Xdoclint
بررسیهای توصیهشده را برای مشکلات موجود در کامنتهای مستندسازی
فعال میکند.
بهطور پیشفرض، گزینه -Xdoclint فعال است. آن را با گزینه
-Xdoclint:none غیرفعال کنید. برای جزئیات بیشتر، بخش DocLint را
ببینید.
-Xdoclint:flag,flag,...
بررسیهای خاص را برای انواع مختلف مشکلات در کامنتهای مستندسازی
فعال یا غیرفعال میکند.
هر flag میتواند یکی از مقادیر all، none، یا [-]group باشد که در
آن group یکی از مقادیر زیر را دارد: accessibility، html،
missing، reference، syntax. برای جزئیات بیشتر در مورد این
مقادیر، بخش گروههای DocLint را ببینید. هنگام مشخص کردن دو یا
چند فلگ، میتوانید از یک گزینه واحد -Xdoclint:... استفاده کنید و
تمام فلگهای مورد نظر را فهرست نمایید، یا میتوانید از چندین گزینه
استفاده کنید که در هر گزینه یک یا چند فلگ قید شده باشد. برای
مثال، از هر یک از دستورات زیر برای بررسی مشکلات HTML، نحو و
دسترسیپذیری در فایل MyFile.java استفاده کنید:
javadoc -Xdoclint:html -Xdoclint:syntax -Xdoclint:accessibility MyFile.java
javadoc -Xdoclint:html,syntax,accessibility MyFile.java
مثالهای زیر نحوه تغییر مواردی را که DocLint گزارش میدهد
نشان میدهند:
• -Xdoclint:none --- تمام بررسیها را غیرفعال میکند
• -Xdoclint:group --- بررسیهای group را فعال میکند
• -Xdoclint:all --- تمام گروههای بررسی را فعال میکند
• -Xdoclint:all,-group --- تمام بررسیها به جز بررسیهای group را
فعال میکند برای جزئیات بیشتر، بخش DocLint را ببینید.
-Xdoclint/package:[-]packages
بررسیها را در بستههای خاص فعال یا غیرفعال میکند. مقدار packages
فهرستی از مشخصکنندههای بسته است که با کاما از هم جدا شدهاند. یک
مشخصکننده بسته یا یک نام واجد شرایط از یک بسته است یا یک پیشوند
نام بسته که به دنبال آن * میآید، که به تمام زیربستههای بسته
دادهشده گسترش مییابد. پیشوند مشخصکننده بسته را با - قرار دهید
تا بررسیها برای بستههای مشخصشده غیرفعال شوند.
برای جزئیات بیشتر، بخش DocLint را ببینید.
-Xdocrootparent url
تمام موارد @docRoot را که با /.. در کامنتهای مستندسازی دنبال
میشوند با url جایگزین میکند.
داکلینت (DOCLINT)
ابزار DocLint قابلیت بررسی مشکلات احتمالی در کامنتهای مستندسازی را
فراهم میکند. مشکلات ممکن است بسته به شدت آنها به صورت هشدار یا خطا
گزارش شوند. برای مثال، کامنت گمشده ممکن است سبک بدی باشد که مستحق
هشدار است، اما پیوند به یک اعلان ناشناخته جاوا جدیتر است و سزاوار خطا
است. مشکلات در گروهها سازماندهی شدهاند، و گزینهها میتوانند برای فعال
یا غیرفعال کردن پیامها در یک یا چند گروه استفاده شوند. در کد منبع،
پیامهای یک یا چند گروه را میتوان با استفاده از حاشیهنویسیهای
@SuppressWarnings بیصدا (suppress) کرد.
هنگامی که از javadoc فراخوانی میشود، بهطور پیشفرض DocLint تمام
کامنتهایی را که در مستندات تولیدشده استفاده میشوند بررسی میکند.
بنابراین برای تعیین اینکه کدام اعلانها و کامنتهای مستندسازی متناظر
گنجانده خواهند شد، به سایر گزینههای خط فرمان متکی است. توجه: این ممکن
است به این معنی باشد که حتی کامنتهای مربوط به برخی از اعضای خصوصی
کلاسهای سریالیشدنی نیز در صورتی که اعضا نیاز به مستندسازی در صفحه
Serialized Forms تولیدشده داشته باشند، بررسی خواهند شد.
در مقابل، هنگامی که DocLint از javac فراخوانی میشود، DocLint صرفاً به
گزینههای مختلف -Xdoclint... متکی است تا تعیین کند کدام کامنتهای
مستندسازی را بررسی کند.
ابزار DocLint تلاشی برای اصلاح ورودی نامعتبر نمیکند، فقط آن را گزارش
میدهد.
توجه: ابزار DocLint کامل بودن این بررسیها را تضمین نمیکند. بهویژه، این
یک بررسیکننده کامل انطباق HTML نیست. هدف صرفاً گزارش خطاهای رایج به
روشی مناسب است.
گروهها (Groups)
بررسیهای انجامشده توسط DocLint در گروههایی سازماندهی شدهاند. هشدارها و
خطاهای هر گروه را میتوان با گزینههای خط فرمان فعال یا غیرفعال کرد، یا
با حاشیهنویسیهای @SuppressWarnings بیصدا نمود.
گروهها به شرح زیر هستند:
• accessibility --- مشکلات مربوط به دسترسپذیری را بررسی میکند. برای
مثال، صفت alt در عنصر
مشخص نشده باشد، یا صفتهای عنوان یا خلاصه
در عنصر مشخص نشده باشند.
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده
توسط javadoc خطایی گزارش دهد، مشکلات به عنوان خطا گزارش میشوند.
برای مرجع، راهنمای دسترسی به محتوای وب (WCAG)
[https://www.w3.org/WAI/standards-guidelines/wcag] را ببینید.
• html --- مشکلات رایج سطح بالای HTML را شناسایی میکند. برای مثال،
قرار دادن عناصر بلوکی درون عناصر درونخطی، یا نبستن عناصری که به تگ
پایانی نیاز دارند.
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده
توسط javadoc خطایی گزارش دهد، مشکلات به عنوان خطا گزارش میشوند.
برای مرجع، استاندارد زنده HTML
[https://html.spec.whatwg.org/multipage] را ببینید.
• missing --- کامنتها یا تگهای مستندسازی مفقود را بررسی میکند. برای
مثال، کامنت مفقود در اعلان یک کلاس، یا تگ مفقود @param یا @return در
کامنت برای اعلان یک متد.
مشکلات مربوط به موارد مفقود معمولاً به عنوان هشدار گزارش میشوند زیرا
بعید است توسط ابزارهای اعتبارسنجی پاییندستی که ممکن است برای بررسی
خروجی تولیدشده توسط javadoc استفاده شوند، به عنوان خطا گزارش شوند.
• reference --- مشکلات مربوط به ارجاعات به عناصر Java API از تگهای
کامنت مستندسازی را بررسی میکند. برای مثال، ارجاع در @see یا {@link
...} یافت نمیشود، یا نام نامناسبی برای @param یا @throws داده شده
است.
مشکلات معمولاً به عنوان خطا گزارش میشوند زیرا اگرچه ممکن است این مشکل
باعث ایجاد نقص در فایلهای تولیدشده نشود، اما نویسنده احتمالاً مرتکب
اشتباهی شده است که منجر به مستندات نادرست یا غیرمنتظره خواهد شد.
• syntax --- مشکلات نحوی سطح پایین در کامنتهای مستندسازی را بررسی
میکند. برای مثال، براکتهای زاویهدار اسکیپنشده (< و >) و علامتهای
آمپرسند (&) و تگهای نامعتبر کامنت مستندسازی.
مشکلات معمولاً به عنوان خطا گزارش میشوند زیرا ممکن است منجر به مستندات
نادرست یا غیرمنتظره شوند.
بیصدا کردن پیامها (Suppressing Messages)
ابزار DocLint دو رشته را که ممکن است در آرگومانهای حاشیهنویسی
@SuppressWarnings وجود داشته باشند بررسی کرده و تشخیص میدهد:
• doclint
• doclint:LIST
که در آن LIST یک فهرست جداشده با کاما از یک یا چند مورد از
accessibility، html، missing، reference و syntax است.
نامهای موجود در LIST همان نامهای گروه هستند که توسط گزینه خط فرمان
-Xdoclint برای javac و javadoc پشتیبانی میشوند. (این همان قراردادی است
که توسط گزینه -Xlint در javac و نامهای متناظر پشتیبانیشده توسط
@SuppressWarnings رعایت میشود).
نامهای موجود در LIST را میتوان به طور معادل در آرگومانهای جداگانه
حاشیهنویسی مشخص کرد. برای مثال، موارد زیر معادل هستند:
• @SuppressWarnings("doclint:accessibility,missing")
• @SuppressWarnings("doclint:accessibility", "doclint:missing")
هنگامی که DocLint مشکلی را در یک کامنت مستندسازی تشخیص میدهد، وجود
@SuppressWarnings را روی اعلان مربوطه و روی تمام اعلانهای محصورکننده از
نظر لغوی بررسی میکند. اگر چنین حاشیهنویسی حاوی رشته ساده doclint یا
فرم طولانیتر doclint:LIST (که در آن LIST حاوی نام گروه مربوط به آن مشکل
است) یافت شود، مشکل نادیده گرفته خواهد شد.
توجه: مانند سایر کاربردهای @SuppressWarnings، استفاده از این حاشیهنویسی
روی اعلان یک ماژول یا بسته فقط بر همان اعلان تأثیر میگذارد؛ بر محتویات
ماژول یا بسته در سایر فایلهای منبع تأثیری ندارد.
تمام پیامهای مربوط به یک مشکل با وجود یک حاشیهنویسی مناسب
@SuppressWarnings سرکوب میشوند: این شامل خطاها و همچنین هشدارها میشود.
توجه: فقط امکان بیصدا کردن (suppress) پیامها وجود دارد. اگر حاشیهنویسی
@SuppressWarnings("doclint") روی یک اعلان سطح بالا داده شود، تمام
پیامهای DocLint برای آن اعلان و هر اعلان محصور در آن سرکوب خواهند شد؛
فعالسازی مجدد انتخابی پیامها برای مشکلات موجود در اعلانهای محصور
امکانپذیر نیست.
مقایسه با ابزارهای اعتبارسنجی پاییندستی
ابزار DocLint یک ابزار کاربردی ساختهشده در javac و javadoc است که
محتوای کامنتهای مستندسازی را همانطور که در فایلهای منبع یافت میشوند
بررسی میکند. در مقابل، ابزارهای اعتبارسنجی پاییندستی میتوانند برای
اعتبارسنجی خروجی تولیدشده از آن کامنتهای مستندسازی توسط javadoc و داکلت
استاندارد استفاده شوند.
اگرچه همپوشانیهایی در عملکرد وجود دارد، اما این دو مکانیسم متفاوت هستند
و هر کدام نقاط قوت و ضعف خاص خود را دارند.
• ابزارهای اعتبارسنجی پاییندستی میتوانند نتیجه نهایی هرگونه مستندات
تولیدشده را همانطور که توسط کاربر نهایی دیده میشود بررسی کنند. این
شامل محتوای تمام منابع، از جمله کامنتهای مستندسازی، خود داکلت
استاندارد، تگلتهای ارائهشده توسط کاربر، و محتوای ارائهشده از طریق
گزینههای خط فرمان است. از آنجا که چنین ابزارهایی صفحات کامل HTML را
تجزیه و تحلیل میکنند، میتوانند بررسیهای کاملتری نسبت به DocLint انجام
دهند. با این حال، هنگامی که مشکلی در صفحات تولیدشده یافت میشود،
ردیابی دقیق اینکه مشکل در کجای خط لوله ساخت باید برطرف شود، میتواند
دشوارتر باشد.
• ابزار DocLint محتوای کامنتهای مستندسازی را در فایلهای منبع بررسی
میکند. این امر شناسایی موقعیت دقیق هرگونه مشکل احتمالی را بسیار آسان
میکند. ابزار DocLint همچنین میتواند برخی از خطاهای معنایی را در
کامنتهای مستندسازی که ابزارهای پاییندستی قادر به تشخیص آنها نیستند
شناسایی کند، مانند کامنتهای مفقود، استفاده از تگ @return در متدی که
void برمیگرداند، یا تگ @param که یک پارامتر ناموجود را توصیف میکند.
اما بر حسب ماهیت خود، DocLint نمیتواند مشکلاتی مانند پیوندهای مفقود،
خطاها در تگلتهای سفارشی ارائهشده توسط کاربر، یا مشکلات درون خود داکلت
استاندارد را گزارش کند. همچنین نمیتواند خطاها را در کامنتهای
مستندسازی در مرزهای بین محتوای موجود در یک کامنت مستندسازی و محتوای
تولیدشده توسط یک تگلت سفارشی به طور قابل اعتمادی شناسایی نماید.
JDK 26.0.2.1 2026 JAVADOC(1)