.\" Copyright (c) 1994, 2022, Oracle and/or its affiliates. All rights reserved. .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. .\" .\" This code is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License version 2 only, as .\" published by the Free Software Foundation. .\" .\" This code is distributed in the hope that it will be useful, but WITHOUT .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" version 2 for more details (a copy is included in the LICENSE file that .\" accompanied this code). .\" .\" You should have received a copy of the GNU General Public License version .\" 2 along with this work; if not, write to the Free Software Foundation, .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. .\" .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA .\" or visit www.oracle.com if you need additional information or have any .\" questions. .\" .\" Automatically generated by Pandoc 2.19.2 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[R]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "JAVADOC" "1" "2023" "JDK 21" "JDK Commands" .hy .SH "نام (NAME)" .PP javadoc \- ابزار تولید صفحات HTML مستندات API از فایلهای منبع جاوا (نسخه ۲۱) .SH "خلاصه دستور (SYNOPSIS)" .PP \f[V]javadoc\f[R] [\f[I]گزینهها\f[R]] [\f[I]نامهای_بسته\f[R]] [\f[I]فایلهای_منبع\f[R]] [\f[V]\[at]\f[R]\f[I]فایلها\f[R]] .TP \f[I]گزینهها (options)\f[R] گزینههای خط فرمان را مشخص میکند که با فاصله از هم جدا میشوند. بخشهای \f[B]گزینههای استاندارد \f[VB]javadoc\f[B]\f[R]، \f[B]گزینههای اضافی \f[VB]javadoc\f[B]\f[R]، \f[B]گزینههای استاندارد برای داکلت استاندارد\f[R]، و \f[B]گزینههای اضافی برای داکلت استاندارد\f[R] را ببینید. .TP \f[I]نامهای_بسته (packagenames)\f[R] نام بستههایی را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا شدهاند، برای مثال \f[V]java.lang java.lang.reflect java.awt\f[R]. اگر میخواهید زیربستهها را نیز مستندسازی کنید، از گزینه \f[V]-subpackages\f[R] برای مشخص کردن بستهها استفاده کنید. .RS .PP بهطور پیشفرض، \f[V]javadoc\f[R] به دنبال بستههای مشخصشده در دایرکتوری جاری و زیردایرکتوریهای آن میگردد. از گزینه \f[V]-sourcepath\f[R] برای مشخص کردن فهرست دایرکتوریهای محل جستجوی بستهها استفاده کنید. .RE .TP \f[I]فایلهای_منبع (sourcefiles)\f[R] نام فایلهای منبع جاوا را که میخواهید مستندسازی کنید مشخص میکند که با فاصله از هم جدا شدهاند، برای مثال \f[V]Class.java Object.java Button.java\f[R]. بهطور پیشفرض، \f[V]javadoc\f[R] به دنبال کلاسهای مشخصشده در دایرکتوری جاری میگردد. با این حال، میتوانید مسیر کامل فایل کلاس را مشخص کرده و از نویسههای عام (wildcard) استفاده کنید، برای مثال \f[V]/home/src/java/awt/Graphics*.java\f[R]. همچنین میتوانید مسیر را نسبت به دایرکتوری جاری مشخص کنید. .TP \f[V]\[at]\f[R]\f[I]فایلها (files)\f[R] نام فایلهایی را مشخص میکند که شامل فهرستی از گزینههای ابزار \f[V]javadoc\f[R]، نام بستهها و نام فایلهای منبع به هر ترتیبی هستند. .SH "توضیحات (DESCRIPTION)" .PP ابزار \f[V]javadoc\f[R] اعلانها و کامنتهای مستندسازی را در مجموعهای از فایلهای منبع جاوا تجزیه کرده و صفحات HTML متناظری تولید میکند که (بهطور پیشفرض) کلاسهای عمومی و محافظتشده، کلاسهای تو در تو و بینام (اما نه کلاسهای داخلی ناشناس)، رابطها، سازندهها، متدها و فیلدها را توصیف میکنند. میتوانید از ابزار \f[V]javadoc\f[R] برای تولید مستندات API یا مستندات پیادهسازی برای مجموعهای از فایلهای منبع استفاده کنید. .PP میتوانید ابزار \f[V]javadoc\f[R] را روی کل بستهها، فایلهای منبع منفرد، یا هر دو اجرا کنید. هنگام مستندسازی کل بستهها، میتوانید از گزینه \f[V]-subpackages\f[R] یا برای پیمایش بازگشتی یک دایرکتوری و زیردایرکتوریهای آن، یا برای ارسال فهرستی صریح از نامهای بسته استفاده کنید. هنگامی که فایلهای منبع منفرد را مستندسازی میکنید، فهرستی از نامهای فایل منبع جاوا را ارسال کنید. .SS "انطباق و سازگاری (Conformance)" .PP داکلت استاندارد (Standard Doclet) محتوای کامنتهای مستندسازی را برای انطباق اعتبارسنجی نمیکند و تلاشی برای تصحیح خطاهای موجود در کامنتهای مستندسازی انجام نمیدهد. به هر کسی که javadoc را اجرا میکند توصیه میشود از مشکلاتی که ممکن است هنگام تولید خروجی ناسازگار یا خروجی حاوی محتوای اجرایی مانند جاوااسکریپت رخ دهد آگاه باشد. داکلت استاندارد ویژگی \f[B]DocLint\f[R] را برای کمک به توسعهدهندگان در تشخیص مشکلات رایج در کامنتهای مستندسازی ارائه میدهد؛ اما همچنین توصیه میشود خروجی تولیدشده با ابزارهای مناسب اعتبارسنجی انطباق و سایر ابزارهای بررسی ارزیابی شود. .PP برای جزئیات بیشتر در مورد الزامات انطباق برای اسناد HTML5، بخش \f[B]Conformance requirements\f[R] [https://www.w3.org/TR/html5/infrastructure.html#conformance-requirements] در مشخصات HTML5 را ببینید. برای جزئیات بیشتر در مورد مسائل امنیتی مرتبط با صفحات وب، صفحه \f[B]پروژه امنیت برنامههای کاربردی وب باز (OWASP)\f[R] [https://www.owasp.org] را ببینید. .SH "گزینهها (OPTIONS)" .PP دستور \f[V]javadoc\f[R] از گزینههای خط فرمان برای هر دو ابزار اصلی \f[V]javadoc\f[R] و داکلت انتخابشده فعلی پشتیبانی میکند. اگر داکلت دیگری مشخص نشده باشد، از داکلت استاندارد (Standard Doclet) استفاده میشود. .PP گزینههای به سبک GNU (یعنی آنهایی که با \f[V]--\f[R] شروع میشوند) میتوانند به جای نویسههای فاصله، از علامت مساوی (\f[V]=\f[R]) برای جدا کردن نام گزینه از مقدار آن استفاده کنند. .SS "گزینههای استاندارد \f[V]javadoc\f[R]" .PP گزینههای اصلی \f[V]javadoc\f[R] زیر معادل گزینههای متناظر \f[V]javac\f[R] هستند. برای توضیحات دقیق استفاده از این گزینهها، بخش \f[I]گزینههای استاندارد\f[R] در \f[B]javac\f[R] را ببینید: .IP \[bu] 2 \f[V]--add-modules\f[R] .IP \[bu] 2 \f[V]-bootclasspath\f[R] .IP \[bu] 2 \f[V]--class-path\f[R]، \f[V]-classpath\f[R]، یا \f[V]-cp\f[R] .IP \[bu] 2 \f[V]--enable-preview\f[R] .IP \[bu] 2 \f[V]-encoding\f[R] .IP \[bu] 2 \f[V]-extdirs\f[R] .IP \[bu] 2 \f[V]--limit-modules\f[R] .IP \[bu] 2 \f[V]--module\f[R] .IP \[bu] 2 \f[V]--module-path\f[R] یا \f[V]-p\f[R] .IP \[bu] 2 \f[V]--module-source-path\f[R] .IP \[bu] 2 \f[V]--release\f[R] .IP \[bu] 2 \f[V]--source\f[R] یا \f[V]-source\f[R] .IP \[bu] 2 \f[V]--source-path\f[R] یا \f[V]-sourcepath\f[R] .IP \[bu] 2 \f[V]--system\f[R] .IP \[bu] 2 \f[V]--upgrade-module-path\f[R] .PP گزینههای زیر گزینههای اصلی \f[V]javadoc\f[R] هستند که معادل گزینه متناظری در \f[V]javac\f[R] نیستند: .TP \f[V]-breakiterator\f[R] جمله اول را با \f[V]BreakIterator\f[R] محاسبه میکند. جمله اول در خلاصه بسته، کلاس، یا عضو و همچنین در نمایه الفبایی کپی میشود. کلاس \f[V]BreakIterator\f[R] برای تعیین پایان جمله برای همه زبانها به جز انگلیسی استفاده میشود. .RS .IP \[bu] 2 الگوریتم پیشفرض پایان جمله انگلیسی --- در نقطه همراه با یک فاصله یا یک تگ بلوکی HTML مانند \f[V]
\f[R] متوقف میشود.
.IP \[bu] 2
الگوریتم پایان جمله Breakiterator --- در نقطه، علامت سوال، یا علامت تعجب همراه با یک فاصله زمانی که کلمه بعدی با یک حرف بزرگ شروع میشود متوقف میشود.
این برای رسیدگی به اکثر اختصارات در نظر گرفته شده است (مانند \[dq]The serial no. is valid\[dq]، اما \[dq]Mr. Smith\[dq] را پردازش نمیکند).
گزینه \f[V]-breakiterator\f[R] در تگهای HTML یا جملاتی که با اعداد یا نمادها شروع میشوند متوقف نمیشود.
این الگوریتم در آخرین نقطه در \f[V]../filename\f[R] متوقف میشود، حتی زمانی که در یک تگ HTML جاسازی شده باشد.
.RE
.TP
\f[V]-doclet\f[R] \f[I]کلاس\f[R]
خروجی را با استفاده از یک داکلت جایگزین تولید میکند.
از نام کاملاً واجد شرایط (fully qualified) استفاده کنید.
این داکلت محتوا را تعریف کرده و خروجی را قالببندی میکند.
اگر گزینه \f[V]-doclet\f[R] استفاده نشود، ابزار \f[V]javadoc\f[R] از داکلت استاندارد برای تولید فرمت پیشفرض HTML استفاده میکند.
این کلاس باید شامل متد \f[V]start(Root)\f[R] باشد.
مسیر این کلاس شروع توسط گزینه \f[V]-docletpath\f[R] تعریف میشود.
.TP
\f[V]-docletpath\f[R] \f[I]مسیر\f[R]
محل یافتن فایلهای کلاس داکلت (مشخصشده با گزینه \f[V]-doclet\f[R]) و هر فایل JAR وابسته به آن را مشخص میکند.
اگر فایل کلاس شروع در یک فایل JAR باشد، این گزینه مسیر آن فایل JAR را مشخص میکند.
میتوانید یک مسیر مطلق یا یک مسیر نسبی نسبت به دایرکتوری جاری مشخص کنید.
اگر \f[V]classpathlist\f[R] شامل چندین مسیر یا فایل JAR باشد، باید با دونقطه (\f[V]:\f[R]) در لینوکس و نقطهویرگول (\f[V];\f[R]) در ویندوز از هم جدا شوند.
زمانی که کلاس شروع \f[V]doclet\f[R] از قبل در مسیر جستجو باشد، این گزینه ضروری نیست.
.TP
\f[V]-exclude\f[R] \f[I]فهرست_بستهها\f[R]
بهطور بدون قید و شرط، بستههای مشخصشده و زیربستههای آنها را از فهرستی که توسط \f[V]-subpackages\f[R] تشکیل شده است مستثنی میکند.
این گزینه آن بستهها را حتی اگر توسط یک گزینه \f[V]-subpackages\f[R] قبلی یا بعدی گنجانده شده باشند، حذف میکند.
.RS
.PP
مثال زیر شامل \f[V]java.io\f[R]، \f[V]java.util\f[R]، و \f[V]java.math\f[R] (در میان دیگران) میشود، اما بستههای ریشهدار در \f[V]java.net\f[R] و \f[V]java.lang\f[R] را مستثنی میکند.
توجه داشته باشید که این مثالها \f[V]java.lang.ref\f[R] را که یک زیربسته از \f[V]java.lang\f[R] است، مستثنی میکنند.
.IP \[bu] 2
\f[B]لینوکس و macOS:\f[R]
.RS 2
.IP
.nf
\f[CB]
javadoc -sourcepath /home/user/src -subpackages java -exclude java.net:java.lang
\f[R]
.fi
.RE
.IP \[bu] 2
\f[B]ویندوز:\f[R]
.RS 2
.IP
.nf
\f[CB]
javadoc -sourcepath \[rs]user\[rs]src -subpackages java -exclude java.net:java.lang
\f[R]
.fi
.RE
.RE
.TP
\f[V]--expand-requires\f[R] \f[I]مقدار\f[R]
به ابزار javadoc دستور میدهد تا مجموعه ماژولهایی را که باید مستندسازی شوند گسترش دهد.
بهطور پیشفرض، فقط ماژولهایی که صریحاً در خط فرمان داده شدهاند مستندسازی میشوند.
از مقادیر زیر پشتیبانی میکند:
.RS
.IP \[bu] 2
\f[V]transitive\f[R]: علاوه بر این، تمام وابستگیهای انتقالی (transitive) مورد نیاز آن ماژولها را نیز شامل میشود.
.IP \[bu] 2
\f[V]all\f[R]: تمام وابستگیها را شامل میشود.
.RE
.TP
\f[V]--help\f[R]، \f[V]-help\f[R]، \f[V]-h\f[R]، یا \f[V]-?\f[R]
خلاصهای از گزینههای استاندارد را چاپ میکند.
.TP
\f[V]--help-extra\f[R] یا \f[V]-X\f[R]
خلاصهای از مجموعه گزینههای اضافی را چاپ میکند.
.TP
\f[V]-J\f[R]\f[I]فلگ\f[R]
\f[I]فلگ\f[R] را مستقیماً به محیط زمان اجرای جاوا (JRE) که ابزار \f[V]javadoc\f[R] را اجرا میکند ارسال میکند.
برای مثال، اگر باید اطمینان حاصل کنید که سیستم ۳۲ مگابایت حافظه برای پردازش مستندات تولیدشده کنار میگذارد، گزینه \f[V]-Xmx\f[R] را به این صورت فراخوانی میکنید:
\f[V]javadoc -J-Xmx32m -J-Xms32m com.mypackage\f[R].
توجه داشته باشید که \f[V]-Xms\f[R] اختیاری است زیرا فقط اندازه حافظه اولیه را تنظیم میکند، که زمانی مفید است که حداقل مقدار حافظه مورد نیاز را میدانید.
.RS
.PP
هیچ فاصلهای بین \f[V]J\f[R] و \f[V]فلگ\f[R] وجود ندارد.
.PP
از گزینه \f[V]-version\f[R] برای گزارش نسخه JRE مورد استفاده برای اجرای ابزار \f[V]javadoc\f[R] استفاده کنید.
.IP
.nf
\f[CB]
javadoc -J-version
java version \[dq]17\[dq] 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)
\f[R]
.fi
.RE
.TP
\f[V]-locale\f[R] \f[I]نام\f[R]
محلی (locale) را که ابزار \f[V]javadoc\f[R] هنگام تولید مستندات استفاده میکند مشخص میسازد.
آرگومان نام محلی است، همانطور که در مستندات \f[V]java.util.Locale\f[R] شرح داده شده است، مانند \f[V]en_US\f[R] (انگلیسی، ایالات متحده) یا \f[V]en_US_WIN\f[R] (گونه ویندوز).
.RS
.PP
مشخص کردن یک محلی باعث میشود ابزار \f[V]javadoc\f[R] فایلهای منبع آن محلی را برای پیامهایی مانند رشتههای نوار ناوبری، سربرگهای فهرستها و جداول، محتوای فایل راهنما، کامنتهای موجود در فایل \f[V]stylesheet.css\f[R] و غیره انتخاب کند.
همچنین ترتیب مرتبسازی فهرستهای مرتبشده بر اساس الفبا و جداکننده جمله را برای تعیین پایان جمله اول مشخص میکند.
گزینه \f[V]-locale\f[R] محلی متن کامنت مستندسازی مشخصشده در فایلهای منبع کلاسهای مستندشده را تعیین نمیکند.
.RE
.TP
\f[V]-package\f[R]
فقط کلاسها و اعضای بسته، محافظتشده (protected) و عمومی (public) را نمایش میدهد.
.TP
\f[V]-private\f[R]
همه کلاسها و اعضا را نمایش میدهد.
.TP
\f[V]-protected\f[R]
فقط کلاسها و اعضای محافظتشده و عمومی را نمایش میدهد.
این حالت پیشفرض است.
.TP
\f[V]-public\f[R]
فقط کلاسها و اعضای عمومی را نمایش میدهد.
.TP
\f[V]-quiet\f[R]
پیامها را خاموش میکند تا فقط هشدارها و خطاها ظاهر شوند تا مشاهده آنها آسانتر شود.
همچنین رشته \f[V]version\f[R] را سرکوب میکند.
.TP
\f[V]--show-members\f[R] \f[I]مقدار\f[R]
مشخص میکند کدام اعضا (فیلدها یا متدها) مستندسازی شوند، که در آن \f[I]مقدار\f[R] میتواند هر یک از موارد زیر باشد:
.RS
.IP \[bu] 2
\f[V]public\f[R] --- فقط اعضای عمومی را نمایش میدهد
.IP \[bu] 2
\f[V]protected\f[R] --- اعضای عمومی و محافظتشده را نمایش میدهد؛ این حالت پیشفرض است
.IP \[bu] 2
\f[V]package\f[R] --- اعضای عمومی، محافظتشده و بسته را نمایش میدهد
.IP \[bu] 2
\f[V]private\f[R] --- تمام اعضا را نمایش میدهد
.RE
.TP
\f[V]--show-module-contents\f[R] \f[I]مقدار\f[R]
سطح جزئیات مستندسازی اعلانهای ماژول را مشخص میکند، که در آن \f[I]مقدار\f[R] میتواند \f[V]api\f[R] یا \f[V]all\f[R] باشد.
.TP
\f[V]--show-packages\f[R] \f[I]مقدار\f[R]
مشخص میکند کدام بستههای ماژول مستندسازی شوند، که در آن \f[I]مقدار\f[R] میتواند بستههای صادرشده (\f[V]exported\f[R]) یا تمام بستهها (\f[V]all\f[R]) باشد.
.TP
\f[V]--show-types\f[R] \f[I]مقدار\f[R]
مشخص میکند کدام نوعها (کلاسها، رابطها و غیره)
مستندسازی شوند، که در آن \f[I]مقدار\f[R] میتواند هر یک از موارد زیر باشد:
.RS
.IP \[bu] 2
\f[V]public\f[R] --- فقط نوعهای عمومی را نمایش میدهد
.IP \[bu] 2
\f[V]protected\f[R] --- نوعهای عمومی و محافظتشده را نمایش میدهد؛ این حالت پیشفرض است
.IP \[bu] 2
\f[V]package\f[R] --- نوعهای عمومی، محافظتشده و بسته را نمایش میدهد
.IP \[bu] 2
\f[V]private\f[R] --- تمام نوعها را نمایش میدهد
.RE
.TP
\f[V]-subpackages\f[R] \f[I]فهرست_زیربستهها\f[R]
مستندات را از فایلهای منبع در بستههای مشخصشده و بهطور بازگشتی در زیربستههای آنها تولید میکند.
این گزینه هنگام افزودن زیربستههای جدید به کد منبع مفید است زیرا آنها بهطور خودکار گنجانده میشوند.
هر آرگومان بسته هر زیربسته سطح بالا (مانند \f[V]java\f[R]) یا بسته کاملاً واجد شرایط (مانند \f[V]javax.swing\f[R]) است که نیازی به داشتن فایلهای منبع ندارد.
آرگومانها در تمام سیستمهای عامل با دونقطه از هم جدا میشوند.
استفاده از نویسههای عام (wildcard) مجاز نیست.
از \f[V]-sourcepath\f[R] برای مشخص کردن محل یافتن بستهها استفاده کنید.
این گزینه فایلهای منبعی را که در درخت منبع هستند اما به بستهها تعلق ندارند پردازش نمیکند.
.RS
.PP
برای مثال، دستورات زیر مستندات را برای بستههایی به نام \f[V]java\f[R] و \f[V]javax.swing\f[R] و تمام زیربستههای آنها تولید میکنند.
.IP \[bu] 2
\f[B]لینوکس و macOS:\f[R]
.RS 2
.IP
.nf
\f[CB]
javadoc -d docs -sourcepath /home/user/src -subpackages java:javax.swing
\f[R]
.fi
.RE
.IP \[bu] 2
\f[B]ویندوز:\f[R]
.RS 2
.IP
.nf
\f[CB]
javadoc -d docs -sourcepath \[rs]user\[rs]src -subpackages java:javax.swing
\f[R]
.fi
.RE
.RE
.TP
\f[V]-verbose\f[R]
پیامهای با جزئیات بیشتر را در حین اجرای ابزار \f[V]javadoc\f[R] ارائه میدهد.
بدون گزینه \f[V]-verbose\f[R]، پیامها برای بارگیری فایلهای منبع، تولید مستندات (یک پیام به ازای هر فایل منبع) و مرتبسازی ظاهر میشوند.
گزینه \f[V]-verbose\f[R] باعث چاپ پیامهای اضافی میشود که تعداد میلیثانیهها را برای تجزیه هر فایل منبع جاوا مشخص میکند.
.TP
\f[V]--version\f[R]
اطلاعات نسخه را چاپ میکند.
.TP
\f[V]-Werror\f[R]
در صورت بروز هرگونه هشدار، یک خطا گزارش میدهد.
.SS "گزینههای اضافی \f[V]javadoc\f[R]"
.PP
\f[I]توجه:\f[R] گزینههای اضافی برای \f[V]javadoc\f[R] بدون اطلاع قبلی ممکن است تغییر کنند.
.PP
گزینههای اضافی \f[V]javadoc\f[R] زیر معادل گزینههای متناظر در \f[V]javac\f[R] هستند.
برای توضیحات دقیق استفاده از این گزینهها، بخش \f[I]گزینههای اضافی\f[R] در \f[B]javac\f[R] را ببینید:
.IP \[bu] 2
\f[V]--add-exports\f[R]
.IP \[bu] 2
\f[V]--add-reads\f[R]
.IP \[bu] 2
\f[V]--patch-module\f[R]
.IP \[bu] 2
\f[V]-Xmaxerrs\f[R]
.IP \[bu] 2
\f[V]-Xmaxwarns\f[R]
.SS "گزینههای استاندارد برای داکلت استاندارد (Standard Doclet)"
.PP
گزینههای زیر توسط داکلت استاندارد ارائه میشوند.
.TP
\f[V]--add-script\f[R] \f[I]فایل\f[R]
\f[I]فایل\f[R] را به عنوان یک فایل جاوااسکریپت اضافی به مستندات تولیدشده اضافه میکند.
این گزینه میتواند یک یا چند بار برای مشخص کردن فایلهای اسکریپت اضافی استفاده شود.
.RS
.PP
مثال خط فرمان:
.RS
.PP
\f[V]javadoc --add-script first_script.js --add-script second_script.js pkg_foo\f[R]
.RE
.RE
.TP
\f[V]--add-stylesheet\f[R] \f[I]فایل\f[R]
\f[I]فایل\f[R] را به عنوان یک فایل شیوهنامه (stylesheet) اضافی به مستندات تولیدشده اضافه میکند.
این گزینه میتواند یک یا چند بار برای مشخص کردن شیوهنامههای اضافی گنجاندهشده در مستندات استفاده شود.
.RS
.PP
مثال خط فرمان:
.IP
.nf
\f[CB]
javadoc --add-stylesheet new_stylesheet_1.css --add-stylesheet new_stylesheet_2.css pkg_foo
\f[R]
.fi
.RE
.TP
\f[V]--allow-script-in-comments\f[R]
به جاوااسکریپت در گزینهها و کامنتها اجازه میدهد.
.TP
\f[V]-author\f[R]
متن \f[V]\[at]author\f[R] را در اسناد تولیدشده شامل میشود.
.TP
\f[V]-bottom\f[R] \f[I]کد-html\f[R]
متنی را که باید در پایین هر فایل خروجی قرار گیرد مشخص میکند.
متن در پایین صفحه، زیر نوار ناوبری پایینی قرار میگیرد.
متن میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت، متن باید در علامت نقلقول (گیومه) قرار گیرد.
برای هرگونه علامت نقلقول داخلی در متن، از نویسههای گریز (escape) استفاده کنید.
.TP
\f[V]-charset\f[R] \f[I]نام\f[R]
مجموعه نویسه (character set) HTML را برای این سند مشخص میکند.
نام باید یک نام ترجیحی MIME باشد همانطور که در \f[B]ثبت IANA، مجموعههای نویسه\f[R]
[http://www.iana.org/assignments/character-sets] مشخص شده است.
.RS
.PP
برای مثال:
.IP
.nf
\f[CB]
javadoc -charset \[dq]iso-8859-1\[dq] mypackage
\f[R]
.fi
.PP
این دستور خط زیر را در سربرگ هر صفحه تولیدشده درج میکند:
.IP
.nf
\f[CB]
\f[R]
.fi
.PP
تگ \f[V]meta\f[R] در \f[B]استاندارد HTML (4197265 و 4137321)، نمایش سند HTML\f[R]
[http://www.w3.org/TR/REC-html40/charset.html#h-5.2.2] شرح داده شده است.
.RE
.TP
\f[V]-d\f[R] \f[I]دایرکتوری\f[R]
دایرکتوری مقصدی را مشخص میکند که ابزار \f[V]javadoc\f[R] فایلهای HTML تولیدشده را در آن ذخیره میکند.
اگر گزینه \f[V]-d\f[R] را حذف کنید، فایلها در دایرکتوری جاری ذخیره میشوند.
مقدار \f[V]دایرکتوری\f[R] میتواند مطلق یا نسبی نسبت به دایرکتوری کاری جاری باشد.
دایرکتوری مقصد هنگام اجرای ابزار \f[V]javadoc\f[R] بهطور خودکار ایجاد میشود.
.RS
.IP \[bu] 2
\f[B]لینوکس و macOS:\f[R] برای مثال، دستور زیر مستندات را برای بسته \f[V]com.mypackage\f[R] تولید کرده و نتایج را در دایرکتوری \f[V]/user/doc/\f[R] ذخیره میکند:
.RS 2
.IP
.nf
\f[CB]
javadoc -d /user/doc/ com.mypackage
\f[R]
.fi
.RE
.IP \[bu] 2
\f[B]ویندوز:\f[R] برای مثال، دستور زیر مستندات را برای بسته \f[V]com.mypackage\f[R] تولید کرده و نتایج را در دایرکتوری \f[V]\[rs]user\[rs]doc\[rs]\f[R] ذخیره میکند:
.RS 2
.IP
.nf
\f[CB]
javadoc -d \[rs]user\[rs]doc\[rs] com.mypackage
\f[R]
.fi
.RE
.RE
.TP
\f[V]-docencoding\f[R] \f[I]نام\f[R]
کدگذاری فایلهای HTML تولیدشده را مشخص میکند.
نام باید یک نام ترجیحی MIME باشد همانطور که در \f[B]ثبت IANA، مجموعههای نویسه\f[R]
[http://www.iana.org/assignments/character-sets] مشخص شده است.
.RS
.PP
سه گزینه برای استفاده در دستور کدگذاری \f[V]javadoc\f[R] موجود است.
گزینه \f[V]-encoding\f[R] برای کدگذاری فایلهای خواندهشده توسط ابزار \f[V]javadoc\f[R] استفاده میشود، در حالی که گزینههای \f[V]-docencoding\f[R] و \f[V]-charset\f[R] برای کدگذاری فایلهای نوشتهشده توسط ابزار استفاده میشوند.
از سه گزینه موجود، حداکثر یک گزینه کدگذاری ورودی و یک گزینه کدگذاری خروجی در یک دستور کدگذاری استفاده میشوند.
اگر هر دو گزینه کدگذاری ورودی و خروجی را در یک دستور مشخص کنید، باید مقدار یکسانی داشته باشند.
اگر هیچ گزینه خروجی را مشخص نکنید، بهطور پیشفرض از کدگذاری ورودی استفاده میشود.
.PP
برای مثال:
.IP
.nf
\f[CB]
javadoc -docencoding \[dq]iso-8859-1\[dq] mypackage
\f[R]
.fi
.RE
.TP
\f[V]-docfilessubdirs\f[R]
زیردایرکتوریهای doc-file را بهطور بازگشتی کپی میکند.
کپی عمیق دایرکتوریهای doc-files را فعال میکند.
زیردایرکتوریها و تمام محتویات بهطور بازگشتی در مقصد کپی میشوند.
برای مثال، دایرکتوری \f[V]doc-files/example/images\f[R] و تمام محتویات آن کپی میشوند.
گزینه \f[B]\f[VB]-excludedocfilessubdir\f[B]\f[R] میتواند برای مستثنی کردن زیردایرکتوریهای خاص استفاده شود.
.TP
\f[V]-doctitle\f[R] \f[I]کد-html\f[R]
عنوانی را برای قرار دادن نزدیک بالای فایل خلاصه نمای کلی (overview summary) مشخص میکند.
متن مشخصشده در تگ \f[V]title\f[R] به عنوان یک سربرگ سطح اولِ وسطچین، مستقیماً زیر نوار ناوبری بالایی قرار میگیرد.
تگ \f[V]title\f[R] میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت باید عنوان را در علامت نقلقول قرار دهید.
علامتهای نقلقول اضافی در تگ \f[V]title\f[R] باید گریز داده شوند (escaped).
برای مثال،
\f[V]javadoc -doctitle \[dq]My Library
v1.0\[dq] com.mypackage\f[R].
.TP
\f[V]-excludedocfilessubdir\f[R] \f[I]نام۱\f[R]\f[V],\f[R]\f[I]نام۲...\f[R]
هنگام کپی بازگشتی زیردایرکتوریهای doc-file، هر زیردایرکتوری با نامهای دادهشده را مستثنی میکند.
بخش \f[B]\f[VB]-docfilessubdirs\f[B]\f[R] را ببینید.
به دلایل تاریخی، \f[V]:\f[R] میتواند در هر کجای آرگومان به عنوان جداکننده به جای \f[V],\f[R] استفاده شود.
.TP
\f[V]-footer\f[R] \f[I]کد-html\f[R]
متن پاورقی را برای قرار دادن در پایین هر فایل خروجی مشخص میکند.
مقدار \f[V]کد-html\f[R] در سمت راست نوار ناوبری پایینی قرار میگیرد.
مقدار \f[V]کد-html\f[R] میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت، مقدار \f[V]کد-html\f[R] باید در علامت نقلقول قرار گیرد.
از نویسههای گریز برای هرگونه علامت نقلقول داخلی در پاورقی استفاده کنید.
.TP
\f[V]-group\f[R] \f[I]نام\f[R] \f[I]بسته۱\f[R]\f[V],\f[R]\f[I]بسته۲...\f[R]
بستههای مشخصشده را در صفحه نمای کلی (Overview) با هم گروهبندی میکند.
به دلایل تاریخی، \f[V]:\f[R] میتواند به عنوان جداکننده در هر کجای آرگومان به جای \f[V],\f[R] استفاده شود.
.TP
\f[V]-header\f[R] \f[I]کد-html\f[R]
متن سربرگ را برای قرار دادن در بالای هر فایل خروجی مشخص میکند.
سربرگ در سمت راست نوار ناوبری بالایی قرار میگیرد.
مقدار \f[V]header\f[R] میتواند حاوی تگهای HTML و فاصله باشد، اما در این صورت، \f[V]header\f[R] باید در علامت نقلقول قرار گیرد.
از نویسههای گریز برای علامتهای نقلقول داخلی در سربرگ استفاده کنید.
برای مثال،
\f[V]javadoc -header \[dq]My Library
v1.0\[dq] com.mypackage\f[R].
.TP
\f[V]-helpfile\f[R] \f[I]نام_فایل\f[R]
فایلی را که به پیوند \f[B]HELP\f[R] در نوارهای ناوبری بالا و پایین متصل میشود، شامل میسازد.
بدون این گزینه، ابزار \f[V]javadoc\f[R] یک فایل راهنما به نام \f[V]help-doc.html\f[R] ایجاد میکند که در ابزار \f[V]javadoc\f[R] به صورت کد سخت قرار دارد.
این گزینه به شما امکان میدهد مقدار پیشفرض را لغو کنید.
\f[I]نام_فایل\f[R] میتواند هر نامی باشد و محدود به \f[V]help-doc.html\f[R] نیست.
ابزار \f[V]javadoc\f[R] پیوندهای موجود در نوار ناوبری را بر این اساس تنظیم میکند.
برای مثال:
.RS
.IP \[bu] 2
\f[B]لینوکس و macOS:\f[R]
.RS 2
.IP
.nf
\f[CB]
javadoc -helpfile /home/user/myhelp.html java.awt
\f[R]
.fi
.RE
.IP \[bu] 2
\f[B]ویندوز:\f[R]
.RS 2
.IP
.nf
\f[CB]
javadoc -helpfile C:\[rs]user\[rs]myhelp.html java.awt
\f[R]
.fi
.RE
.RE
.TP
\f[V]-html5\f[R]
این گزینه بیاثر (no-op) است و صرفاً برای سازگاری با گذشته حفظ شده است.
.TP
\f[V]--javafx\f[R] یا \f[V]-javafx\f[R]
قابلیت JavaFX را فعال میکند.
اگر کلاسهای کتابخانه JavaFX در مسیر ماژول شناسایی شوند، این گزینه بهطور پیشفرض فعال است.
.TP
\f[V]-keywords\f[R]
تگهای کلمه کلیدی \f[V]\f[R] در HTML را برای هر کلاس به فایل تولیدشده اضافه میکند.
این تگها میتوانند به موتورهای جستجویی که به دنبال تگهای \f[V]\f[R] میگردند در یافتن صفحات کمک کنند.
اکثر موتورهای جستجو که کل اینترنت را جستجو میکنند به تگهای \f[V]\f[R] نگاه نمیکنند، زیرا صفحات ممکن است از آنها سوءاستفاده کنند.
موتورهای جستجوی ارائهشده توسط شرکتهایی که جستجوهای خود را به وبسایت خود محدود میکنند، میتوانند از بررسی تگهای \f[V]\f[R] بهرهمند شوند.
تگهای \f[V]\f[R] شامل نام کاملاً واجد شرایط کلاس و نامهای غیر واجد شرایط فیلدها و متدها هستند.
سازندهها گنجانده نمیشوند زیرا با نام کلاس یکسان هستند.
برای مثال، کلاس \f[V]String\f[R] با این کلمات کلیدی شروع میشود:
.RS
.IP
.nf
\f[CB]
\f[R]
.fi
.RE
.TP
\f[V]-link\f[R] \f[I]url\f[R]
پیوندهایی به مستندات موجودِ تولیدشده توسط \f[V]javadoc\f[R] از کلاسهای دارای ارجاع خارجی ایجاد میکند.
آرگومان \f[I]url\f[R] نشانی وب مطلق یا نسبی دایرکتوری حاوی مستندات تولیدشده خارجی \f[V]javadoc\f[R] است.
میتوانید چندین گزینه \f[V]-link\f[R] را در یک اجرای ابزار \f[V]javadoc\f[R] مشخص کنید تا به چندین سند پیوند داده شود.
.RS
.PP
باید یک فایل \f[V]package-list\f[R] یا \f[V]element-list\f[R] در این دایرکتوری \f[I]url\f[R] وجود داشته باشد (در غیر این صورت، از گزینه \f[V]-linkoffline\f[R] استفاده کنید).
.PP
\f[I]توجه:\f[R] فایلهای \f[V]package-list\f[R] و \f[V]element-list\f[R] توسط ابزار \f[V]javadoc\f[R] هنگام تولید مستندات API ایجاد میشوند و نباید توسط کاربر تغییر داده شوند.
.PP
هنگامی که از ابزار \f[V]javadoc\f[R] برای مستندسازی بستهها استفاده میکنید، از فایل \f[V]package-list\f[R] برای تعیین بستههای اعلانشده در یک API استفاده میکند.
هنگامی که اسناد API را برای ماژولها تولید میکنید، ابزار \f[V]javadoc\f[R] از فایل \f[V]element-list\f[R] برای تعیین ماژولها و بستههای اعلانشده در یک API استفاده میکند.
.PP
ابزار \f[V]javadoc\f[R] نامها را از فایل فهرست مناسب میخواند و سپس به بستهها یا ماژولها در آن نشانی وب پیوند میدهد.
.PP
هنگامی که ابزار \f[V]javadoc\f[R] اجرا میشود، مقدار \f[I]url\f[R] در پیوندهای \f[V]\f[R] ایجادشده کپی میشود.
بنابراین، \f[I]url\f[R] باید نشانی وب دایرکتوری باشد و نه یک فایل.
.PP
میتوانید از پیوند مطلق برای \f[I]url\f[R] استفاده کنید تا اسناد شما بتوانند به سندی در هر وبسایتی پیوند داده شوند، یا میتوانید از پیوند نسبی برای پیوند دادن صرفاً به یک مکان نسبی استفاده کنید.
اگر از پیوند نسبی استفاده میکنید، مقداری که ارسال میکنید باید مسیر نسبی از دایرکتوری مقصد (مشخصشده با گزینه \f[V]-d\f[R]) به دایرکتوری حاوی بستههای پیوندشده باشد.
هنگامی که یک پیوند مطلق را مشخص میکنید، معمولاً از پیوند HTTP استفاده میکنید.
با این حال، اگر میخواهید به یک فایلسیستم که فاقد وبسرور است پیوند دهید، میتوانید از پیوند فایل استفاده کنید.
تنها زمانی از پیوند فایل استفاده کنید که هر کسی که میخواهد به مستندات تولیدشده دسترسی داشته باشد، همان سیستم فایل را به اشتراک بگذارد.
در همه موارد و در تمام سیستمهای عامل، از اسلش به عنوان جداکننده استفاده کنید، چه URL مطلق باشد یا نسبی، و \f[V]https:\f[R]، \f[V]http:\f[R]، یا \f[V]file:\f[R] همانطور که در \f[B]یادداشت URL: مکانیابهای یکنواخت منبع\f[R]
[http://www.ietf.org/rfc/rfc1738.txt] مشخص شده است.
.IP
.nf
\f[CB]
-link https://\f[R] مشخص نشده باشد، یا صفتهای عنوان یا خلاصه در عنصر \f[V]
\f[R] مشخص نشده باشند.
.RS 2
.PP
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده توسط \f[V]javadoc\f[R] خطایی گزارش دهد، مشکلات به عنوان خطا گزارش میشوند.
.PP
برای مرجع، \f[B]راهنمای دسترسی به محتوای وب (WCAG)\f[R]
[https://www.w3.org/WAI/standards-guidelines/wcag] را ببینید.
.RE
.IP \[bu] 2
\f[V]html\f[R] --- مشکلات رایج سطح بالای HTML را شناسایی میکند.
برای مثال، قرار دادن عناصر بلوکی درون عناصر درونخطی، یا نبستن عناصری که به تگ پایانی نیاز دارند.
.RS 2
.PP
اگر انتظار برود که یک ابزار اعتبارسنجی پاییندستی در فایلهای تولیدشده توسط \f[V]javadoc\f[R] خطایی گزارش دهد، مشکلات به عنوان خطا گزارش میشوند.
.PP
برای مرجع، \f[B]استاندارد زنده HTML\f[R]
[https://html.spec.whatwg.org/multipage] را ببینید.
.RE
.IP \[bu] 2
\f[V]missing\f[R] --- کامنتها یا تگهای مستندسازی گمشده را بررسی میکند.
برای مثال، کامنت گمشده در اعلان یک کلاس، یا تگ گمشده \f[V]\[at]param\f[R] یا \f[V]\[at]return\f[R] در کامنت برای اعلان یک متد.
.RS 2
.PP
مشکلات مربوط به موارد گمشده معمولاً به عنوان هشدار گزارش میشوند زیرا بعید است توسط ابزارهای اعتبارسنجی پاییندستی که ممکن است برای بررسی خروجی تولیدشده توسط \f[V]javadoc\f[R] استفاده شوند، به عنوان خطا گزارش شوند.
.RE
.IP \[bu] 2
\f[V]reference\f[R] --- مشکلات مربوط به ارجاعات به عناصر Java API از تگهای کامنت مستندسازی را بررسی میکند.
برای مثال، ارجاع در \f[V]\[at]see\f[R] یا \f[V]{\[at]link ...}\f[R] یافت نمیشود، یا نام نامناسبی برای \f[V]\[at]param\f[R] یا \f[V]\[at]throws\f[R] داده شده است.
.RS 2
.PP
مشکلات معمولاً به عنوان خطا گزارش میشوند زیرا اگرچه ممکن است این مشکل باعث ایجاد نقص در فایلهای تولیدشده نشود، اما نویسنده احتمالاً مرتکب اشتباهی شده است که منجر به مستندات نادرست یا غیرمنتظره خواهد شد.
.RE
.IP \[bu] 2
\f[V]syntax\f[R] --- مشکلات نحوی سطح پایین در کامنتهای مستندسازی را بررسی میکند.
برای مثال، براکتهای زاویهدار اسکیپنشده (\f[V]<\f[R] و \f[V]>\f[R]) و علامتهای آمپرسند (\f[V]&\f[R]) و تگهای نامعتبر کامنت مستندسازی.
.RS 2
.PP
مشکلات معمولاً به عنوان خطا گزارش میشوند زیرا ممکن است منجر به مستندات نادرست یا غیرمنتظره شوند.
.RE
.SS "بیصدا کردن پیامها (Suppressing Messages)"
.PP
ابزار DocLint دو رشته را که ممکن است در آرگومانهای حاشیهنویسی \f[V]\[at]SuppressWarnings\f[R] وجود داشته باشند بررسی کرده و تشخیص میدهد:
.IP \[bu] 2
\f[V]doclint\f[R]
.IP \[bu] 2
\f[V]doclint:\f[R]\f[I]فهرست\f[R]
.PP
که در آن \f[I]فهرست\f[R] یک لیست جداشده با کاما از یک یا چند مورد از \f[V]accessibility\f[R]، \f[V]html\f[R]، \f[V]missing\f[R]، \f[V]syntax\f[R] و \f[V]reference\f[R] است.
.PP
نامهای موجود در \f[I]فهرست\f[R] همان نامهای \f[B]گروه\f[R] هستند که توسط گزینه خط فرمان \f[V]-Xdoclint\f[R] برای \f[V]javac\f[R] و \f[V]javadoc\f[R] پشتیبانی میشوند.
(این همان قراردادی است که توسط گزینه \f[V]-Xlint\f[R] در \f[V]javac\f[R] و نامهای متناظر پشتیبانیشده توسط \f[V]\[at]SuppressWarnings\f[R] رعایت میشود).
.PP
نامهای موجود در \f[I]فهرست\f[R] را میتوان به طور معادل در آرگومانهای جداگانه حاشیهنویسی مشخص کرد.
برای مثال موارد زیر معادل هستند:
.IP \[bu] 2
\f[V]\[at]SuppressWarnings(\[dq]doclint:accessibility,missing\[dq])\f[R]
.IP \[bu] 2
\f[V]\[at]SuppressWarnings(\[dq]doclint:accessibility\[dq], \[dq]doclint:missing\[dq])\f[R]
.PP
هنگامی که DocLint مشکلی را در یک کامنت مستندسازی تشخیص میدهد، وجود \f[V]\[at]SuppressWarnings\f[R] را روی اعلان مربوطه و روی تمام اعلانهای محصورکننده از نظر لغوی بررسی میکند.
اگر چنین حاشیهنویسی حاوی رشته ساده \f[V]doclint\f[R] یا فرم طولانیتر \f[V]doclint:LIST\f[R] (که در آن \f[I]LIST\f[R] حاوی نام گروه مربوط به آن مشکل است) یافت شود، مشکل نادیده گرفته خواهد شد.
.PP
\f[I]توجه:\f[R] مانند سایر کاربردهای \f[V]\[at]SuppressWarnings\f[R]، استفاده از این حاشیهنویسی روی اعلان یک ماژول یا بسته فقط بر همان اعلان تأثیر میگذارد؛ بر محتویات ماژول یا بسته در سایر فایلهای منبع تأثیری ندارد.
.PP
تمام پیامهای مربوط به یک مشکل با وجود یک حاشیهنویسی مناسب \f[V]\[at]SuppressWarnings\f[R] سرکوب میشوند: این شامل خطاها و همچنین هشدارها میشود.
.PP
\f[I]توجه:\f[R] فقط امکان \f[I]بیصدا کردن (suppress)\f[R] پیامها وجود دارد.
اگر حاشیهنویسی \f[V]\[at]SuppressWarnings(\[dq]doclint\[dq])\f[R] روی یک اعلان سطح بالا داده شود، تمام پیامهای DocLint برای آن اعلان و هر اعلان محصور در آن سرکوب خواهند شد؛ فعالسازی مجدد انتخابی پیامها برای مشکلات موجود در اعلانهای محصور امکانپذیر نیست.
.SS "مقایسه با ابزارهای اعتبارسنجی پاییندستی"
.PP
ابزار DocLint یک ابزار کاربردی ساختهشده در \f[V]javac\f[R] و \f[V]javadoc\f[R] است که محتوای کامنتهای مستندسازی را همانطور که در فایلهای منبع یافت میشوند بررسی میکند.
در مقابل، ابزارهای اعتبارسنجی پاییندستی میتوانند برای اعتبارسنجی خروجی تولیدشده از آن کامنتهای مستندسازی توسط \f[V]javadoc\f[R] و داکلت استاندارد استفاده شوند.
.PP
اگرچه همپوشانیهایی در عملکرد وجود دارد، اما این دو مکانیسم متفاوت هستند و هر کدام نقاط قوت و ضعف خاص خود را دارند.
.IP \[bu] 2
ابزارهای اعتبارسنجی پاییندستی میتوانند نتیجه نهایی هرگونه مستندات تولیدشده را همانطور که توسط کاربر نهایی دیده میشود بررسی کنند.
این شامل محتوای تمام منابع، از جمله کامنتهای مستندسازی، خود داکلت استاندارد، تگلتهای ارائهشده توسط کاربر، و محتوای ارائهشده از طریق گزینههای خط فرمان است.
از آنجا که چنین ابزارهایی صفحات کامل HTML را تجزیه و تحلیل میکنند، میتوانند بررسیهای کاملتری نسبت به DocLint انجام دهند.
با این حال، هنگامی که مشکلی در صفحات تولیدشده یافت میشود، ردیابی دقیق اینکه مشکل در کجای خط لوله ساخت باید برطرف شود، میتواند دشوارتر باشد.
.IP \[bu] 2
ابزار DocLint محتوای کامنتهای مستندسازی را در فایلهای منبع بررسی میکند.
این امر شناسایی موقعیت دقیق هرگونه مشکل احتمالی را بسیار آسان میکند.
ابزار DocLint همچنین میتواند برخی از خطاهای معنایی را در کامنتهای مستندسازی که ابزارهای پاییندستی قادر به تشخیص آنها نیستند شناسایی کند، مانند کامنتهای گمشده، استفاده از تگ \f[V]\[at]return\f[R] در متدی که \f[V]void\f[R] برمیگرداند، یا تگ \f[V]\[at]param\f[R] که یک پارامتر ناموجود را توصیف میکند.
اما بر حسب ماهیت خود، DocLint نمیتواند مشکلاتی مانند پیوندهای گمشده، خطاها در تگلتهای سفارشی ارائهشده توسط کاربر، یا مشکلات درون خود داکلت استاندارد را گزارش کند.
همچنین نمیتواند خطاها را در کامنتهای مستندسازی در مرزهای بین محتوای موجود در یک کامنت مستندسازی و محتوای تولیدشده توسط یک تگلت سفارشی به طور قابل اعتمادی شناسایی نماید.