| JDEPS(1) | JDK Commands | JDEPS(1) |
نام (NAME)
jdeps - تحلیلگر وابستگیهای کلاس و بستههای جاوا (نسخه ۲۶)
خلاصه دستور (SYNOPSIS)
jdeps [گزینهها] مسیر ...
- گزینهها
- گزینههای خط فرمان. برای توضیحات دقیق گزینههای قابل استفاده، ببینید:
- گزینههای ممکن
- گزینههای تحلیل وابستگی ماژول
- گزینههای پالایش وابستگیها
- گزینههای پالایش کلاسهای مورد تحلیل
- مسیر
- مسیر فایل .class، دایرکتوری یا فایل JAR برای تحلیل.
توضیحات (DESCRIPTION)
دستور jdeps وابستگیهای در سطح بسته یا سطح کلاس فایلهای کلاس جاوا را نمایش میدهد. کلاس ورودی میتواند نام مسیر به یک فایل .class، یک دایرکتوری، یک فایل JAR یا یک نام کلاس واجد شرایط کامل (FQCN) برای تحلیل تمام فایلهای کلاس باشد. گزینهها نوع خروجی را مشخص میکنند. بهطور پیشفرض، دستور 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 استفاده کنید.
- -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...]
- ماژولها را برای تحلیل به مجموعه ریشه (root set) اضافه میکند.
- --multi-release version
- نسخه را هنگام پردازش فایلهای JAR چندنسخهای (multi-release) مشخص میکند. version باید یک عدد صحیح ۹ یا بزرگتر از ۹ یا base باشد.
- -q یا -quiet
- وابستگیهای مفقود را در خروجی -generate-module-info نمایش نمیدهد.
- -version یا --version
- اطلاعات نسخه را چاپ میکند.
گزینههای تحلیل وابستگی ماژول (MODULE DEPENDENCE ANALYSIS OPTIONS)
- -m module-name یا --module module-name
- ماژول ریشه را برای تحلیل مشخص میکند.
- --generate-module-info dir
- فایل module-info.java را در دایرکتوری مشخصشده تولید میکند. فایلهای JAR مشخصشده تحلیل خواهند شد. این گزینه نمیتواند همراه با گزینههای --dot-output یا --class-path استفاده شود. برای ماژولهای باز از گزینه --generate-open-module استفاده کنید.
- --generate-open-module dir
- فایل module-info.java را برای فایلهای JAR مشخصشده تحت دایرکتوری مشخصشده بهعنوان ماژولهای باز تولید میکند. این گزینه نمیتواند همراه با گزینههای --dot-output یا --class-path استفاده شود.
- --check module-name [, module-name...]
- وابستگی ماژولهای مشخصشده را تحلیل میکند. این گزینه توصیفگر ماژول، وابستگیهای ماژول حاصل پس از تحلیل و گراف را پس از کاهش انتقالی (transition reduction) چاپ میکند. همچنین هرگونه صادرات واجد شرایط استفادهنشده (unused qualified exports) را شناسایی میکند.
- --list-deps
- وابستگیهای ماژول و همچنین نام بستههای APIهای داخلی JDK (در صورت ارجاع) را فهرست میکند. این گزینه کتابخانههای موجود در مسیر کلاس و مسیر ماژول را در صورت ارجاع بهصورت انتقالی (transitively) تحلیل میکند. برای تحلیل وابستگیهای غیرانتقالی از گزینه --no-recursive استفاده کنید.
- --list-reduced-deps
- مشابه --list-deps است بدون فهرست کردن یالهای خواندن ضمنی (implied reads) از گراف ماژول. اگر ماژول M1 ماژول M2 را بخواند و M2 نیاز انتقالی به 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 استفاده شود.
گزینههای پالایش کلاسهای مورد تحلیل (OPTIONS TO FILTER CLASSES TO BE ANALYZED)
- -include regex
- تحلیل را به کلاسهای منطبق با الگو محدود میکند. این گزینه فهرست کلاسهای مورد تحلیل را پالایش میکند. میتواند همراه با -p و -e استفاده شود که الگو را روی وابستگیها اعمال میکنند.
- -R یا --recursive
- تمام وابستگیهای زمان اجرا را بهطور بازگشتی پیمایش میکند. گزینه -R متضمن -filter:none است. اگر گزینههای -p، -e یا -f مشخص شوند، فقط وابستگیهای منطبق تحلیل میشوند.
- --no-recursive
- وابستگیها را بهطور بازگشتی پیمایش نمیکند.
- -I یا --inverse
- وابستگیها را بر اساس سایر گزینههای دادهشده تحلیل میکند و سپس تمام مصنوعاتی (artifacts) را که بهطور مستقیم و غیرمستقیم به گرههای منطبق وابسته هستند پیدا میکند. این معادل معکوس تحلیل نمای زمان کامپایل و چاپ خلاصه وابستگی است. این گزینه باید همراه با گزینههای --require، --package یا --regex استفاده شود.
- --compile-time
- نمای زمان کامپایل وابستگیهای انتقالی را تحلیل میکند، مانند نمای زمان کامپایل گزینه -R. وابستگیها را بر اساس سایر گزینههای مشخصشده تحلیل میکند. اگر وابستگی از یک دایرکتوری، یک فایل JAR یا یک ماژول پیدا شود، تمام کلاسهای موجود در آن آرشیو حاوی تحلیل میشوند.
مثال تحلیل وابستگیها (EXAMPLE OF ANALYZING DEPENDENCIES)
مثال زیر تحلیل وابستگیهای فایل Notepad.jar را نشان میدهد.
لینوکس و macOS:
-
$ 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
مثال استفاده از گزینه --INVERSE (EXAMPLE USING THE --INVERSE OPTION)
-
$ 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
| 2026 | JDK 26.0.2.1 |