| JDEPS(1) | JDK Commands | JDEPS(1) |
نام (NAME)
jdeps - راهاندازی تحلیلگر وابستگی کلاسهای جاوا
خلاصه دستور (SYNOPSIS)
jdeps [options] path ...
- options
- گزینههای خط فرمان. برای توضیحات دقیق گزینههای قابل استفاده، ببینید:
- •
- گزینههای ممکن (Possible Options)
- •
- گزینههای تحلیل وابستگی ماژول (Module Dependence Analysis Options)
- •
- گزینههای پالایش وابستگیها (Options to Filter Dependences)
- •
- گزینههای پالایش کلاسهای مورد تحلیل (Options to Filter Classes to be Analyzed)
- path
- نام مسیر فایل .class، دایرکتوری، یا فایل JAR مورد تحلیل.
توضیحات (DESCRIPTION)
دستور jdeps وابستگیهای در سطح بسته یا کلاس فایلهای کلاس جاوا را نمایش میدهد. کلاس ورودی میتواند نام مسیری به یک فایل .class، یک دایرکتوری یا یک فایل JAR باشد، یا میتواند نام کامل کلاس برای تحلیل تمام فایلهای کلاس باشد. گزینهها خروجی را تعیین میکنند. بهطور پیشفرض، دستور jdeps وابستگیها را در خروجی سیستم مینویسد. این دستور میتواند وابستگیها را به زبان DOT نیز تولید کند (گزینهٔ -dotoutput را ببینید).
گزینههای ممکن (POSSIBLE OPTIONS)
- -? یا -h یا --help
- پیام راهنما را چاپ میکند.
- -dotoutput dir یا --dot-output dir
- دایرکتوری مقصد را برای خروجی فایل DOT مشخص میکند. اگر این گزینه مشخص شود، دستور jdeps برای هر بایگانی تحلیلشده یک فایل .dot به نام archive-file-name.dot تولید میکند که وابستگیها را فهرست مینماید، و همچنین یک فایل خلاصه به نام summary.dot که وابستگیهای بین فایلهای بایگانی را فهرست میکند.
- -s یا -summary
- تنها خلاصهای از وابستگیها را چاپ میکند.
- -v یا -verbose
- تمام وابستگیهای سطح کلاس را چاپ میکند. این معادل است با:
-verbose:class -filter:none
- -verbose:package
- وابستگیهای سطح بسته را چاپ میکند که بهطور پیشفرض، وابستگیهای درون همان بسته حذف میشوند.
- -verbose:class
- وابستگیهای سطح کلاس را چاپ میکند که بهطور پیشفرض، وابستگیهای درون همان بایگانی حذف میشوند.
- -apionly یا --api-only
- تحلیل را به APIها محدود میکند؛ برای مثال، وابستگیهای حاصل از امضای اعضای public و protected کلاسهای عمومی، شامل نوع فیلد، انواع پارامترهای متد، نوع بازگشتی و انواع استثناهای بررسیشده (checked exceptions).
- -jdkinternals یا --jdk-internals
- وابستگیهای سطح کلاس را در APIهای داخلی JDK پیدا میکند. بهطور پیشفرض، این گزینه تمام کلاسهای مشخصشده در گزینهٔ --classpath و فایلهای ورودی را تحلیل میکند، مگر اینکه گزینهٔ -include را مشخص کرده باشید. نمیتوانید از این گزینه همراه با گزینههای -p، -e و -s استفاده کنید.
هشدار: APIهای داخلی JDK غیرقابل دسترس هستند.
- -cp path، -classpath path یا --class-path path
- محل یافتن فایلهای کلاس را مشخص میکند.
- --module-path module-path
- مسیر ماژول را مشخص میکند.
- --upgrade-module-path module-path
- مسیر ماژول ارتقا را مشخص میکند.
- --system java-home
- یک مسیر ماژول سیستم جایگزین را مشخص میکند.
- --add-modules module-name[, module-name...]
- ماژولها را برای تحلیل به مجموعهٔ ریشه اضافه میکند.
- --multi-release version
- نسخه را هنگام پردازش فایلهای JAR چندنسخهای مشخص میکند. version باید یک عدد صحیح >=9 یا base باشد.
- -q یا -quiet
- وابستگیهای مفقود را در خروجی -generate-module-info نمایش نمیدهد.
- -version یا --version
- اطلاعات نسخه را چاپ میکند.
- -m module-name یا --module module-name
- ماژول ریشه را برای تحلیل مشخص میکند.
- --generate-module-info dir
- فایل module-info.java را در دایرکتوری مشخصشده تولید میکند. فایلهای JAR مشخصشده تحلیل خواهند شد. این گزینه نمیتواند همراه با گزینههای --dot-output یا --class-path استفاده شود. برای ماژولهای باز (open modules)، از گزینهٔ --generate-open-module استفاده کنید.
- --generate-open-module dir
- فایل module-info.java را برای فایلهای JAR مشخصشده در دایرکتوری تعیینشده بهعنوان ماژولهای باز تولید میکند. این گزینه نمیتواند همراه با گزینههای --dot-output یا --class-path استفاده شود.
- --check module-name [, module-name...]
- وابستگی ماژولهای مشخصشده را تحلیل میکند. توصیفگر ماژول، وابستگیهای حاصل از تحلیل ماژول، و گراف را پس از کاهش تعدی (transition reduction) چاپ میکند. همچنین هرگونه صادرات دارای صلاحیت (qualified exports) استفادهنشده را شناسایی میکند.
- --list-deps
- وابستگیهای ماژول و همچنین نام بستههای APIهای داخلی JDK را (در صورت ارجاع داده شدن) فهرست میکند. این گزینه در صورت ارجاع، کتابخانههای موجود روی class path و module path را بهصورت متعدی تحلیل میکند. برای تحلیل وابستگیهای غیرمتعدی، از گزینهٔ --no-recursive استفاده کنید.
- --list-reduced-deps
- مشابه --list-deps است بدون فهرست کردن یالهای خواندن ضمنی (implied reads) از گراف ماژول. اگر ماژول M1 ماژول M2 را بخواند، و M2 نیازمندی transitive بر M3 داشته باشد، آنگاه خواندن M3 توسط M1 بهصورت ضمنی بوده و در گراف نشان داده نمیشود.
- --print-module-deps
- مشابه --list-reduced-deps همراه با چاپ فهرستی از وابستگیهای ماژول که با کاما از هم جدا شدهاند. خروجی میتواند توسط jlink --add-modules برای ایجاد یک ایمیج سفارشی حاوی آن ماژولها و وابستگیهای متعدی آنها استفاده شود.
- --ignore-missing-deps
- وابستگیهای ناموجود را نادیده میگیرد.
گزینههای فیلتر کردن وابستگیها (OPTIONS TO FILTER DEPENDENCES)
- -p pkg_name، -package pkg_name یا --package pkg_name
- وابستگیهای منطبق با نام بستهٔ مشخصشده را پیدا میکند. میتوانید این گزینه را چندین بار برای بستههای مختلف مشخص کنید. گزینههای -p و -e مانعةالجمع هستند.
- -e regex، -regex regex یا --regex regex
- وابستگیهای منطبق با الگوی مشخصشده را پیدا میکند. گزینههای -p و -e مانعةالجمع هستند.
- --require module-name
- وابستگیهای منطبق با نام ماژول دادهشده را پیدا میکند (میتواند چندین بار مشخص شود). گزینههای --package، --regex و --require مانعةالجمع هستند.
- -f regex یا -filter regex
- وابستگیهای منطبق با الگوی دادهشده را فیلتر میکند. در صورت مشخص شدن چندین بار، آخرین مورد انتخاب خواهد شد.
- -filter:package
- وابستگیهای درون همان بسته را فیلتر میکند. این حالت پیشفرض است.
- -filter:archive
- وابستگیهای درون همان آرشیو را فیلتر میکند.
- -filter:module
- وابستگیهای درون همان ماژول را فیلتر میکند.
- -filter:none
- هیچ فیلترسازی -filter:package و -filter:archive اعمال نمیشود. فیلترسازی مشخصشده از طریق گزینهٔ -filter همچنان اعمال خواهد شد.
- --missing-deps
- وابستگیهای ناموجود را پیدا میکند. این گزینه نمیتواند همراه با گزینههای -p، -e و -s استفاده شود.
- -include regex
- تحلیل را به کلاسهای منطبق با الگو محدود میکند. این گزینه فهرست کلاسهای مورد تحلیل را پالایش میکند. میتوان آن را به همراه -p و -e که الگو را بر وابستگیها اعمال میکنند، به کار برد.
- -P یا -profile
- پروفایل شامل یک بسته را نمایش میدهد.
- -R یا --recursive
- بهصورت بازگشتی تمامی وابستگیهای زمان اجرا (run-time) را پیمایش میکند. گزینهٔ -R مستلزم -filter:none است. اگر گزینههای -p، -e یا -f مشخص شده باشند، تنها وابستگیهای منطبق تحلیل میشوند.
- --no-recursive
- وابستگیها را بهصورت بازگشتی پیمایش نمیکند.
- -I یا --inverse
- وابستگیها را بر اساس سایر گزینههای ارائهشده تحلیل میکند و سپس تمام مصنوعاتی را که بهطور مستقیم و غیرمستقیم به گرههای منطبق وابسته هستند، مییابد. این معادل وارون تحلیل نمای زمان کامپایل (compile-time) و چاپ خلاصهٔ وابستگی است. این گزینه باید به همراه گزینههای --require، --package یا --regex استفاده شود.
- --compile-time
- نمای زمان کامپایل وابستگیهای متعدی را تحلیل میکند، مانند نمای زمان کامپایل گزینهٔ -R. وابستگیها را بر اساس سایر گزینههای مشخصشده تحلیل میکند. اگر وابستگی از یک دایرکتوری، یک فایل JAR یا یک ماژول پیدا شود، تمام کلاسهای درون آن آرشیو دربرگیرنده تحلیل میشوند.
مثال تحلیل وابستگیها (EXAMPLE OF ANALYZING DEPENDENCIES)
مثال زیر نحوهٔ تحلیل وابستگیهای فایل Notepad.jar را نشان میدهد.
لینوکس و OS X:
-
$ jdeps demo/jfc/Notepad/Notepad.jar Notepad.jar -> java.base Notepad.jar -> java.desktop Notepad.jar -> java.logging <unnamed> (Notepad.jar) -> java.awt -> java.awt.event -> java.beans -> java.io -> java.lang -> java.net -> java.util -> java.util.logging -> javax.swing -> javax.swing.border -> javax.swing.event -> javax.swing.text -> javax.swing.tree -> javax.swing.undo
ویندوز:
-
C:\Java\jdk1.9.0>jdeps demo\jfc\Notepad\Notepad.jar Notepad.jar -> java.base Notepad.jar -> java.desktop Notepad.jar -> java.logging <unnamed> (Notepad.jar) -> java.awt -> java.awt.event -> java.beans -> java.io -> java.lang -> java.net -> java.util -> java.util.logging -> javax.swing -> javax.swing.border -> javax.swing.event -> javax.swing.text -> javax.swing.tree -> javax.swing.undo
-
$ jdeps --inverse --require java.xml.bind Inverse transitive dependences on [java.xml.bind] java.xml.bind <- java.se.ee java.xml.bind <- jdk.xml.ws java.xml.bind <- java.xml.ws <- java.se.ee java.xml.bind <- java.xml.ws <- jdk.xml.ws java.xml.bind <- jdk.xml.bind <- jdk.xml.ws
| 2021 | JDK 17 |