| JDEPS(1) | JDK Commands | JDEPS(1) |
نام (NAME)
jdeps - راهاندازی تحلیلگر وابستگی کلاسهای جاوا
خلاصه دستور (SYNOPSIS)
jdeps [options] path ...
- options
- گزینههای خط فرمان. برای توضیحات دقیق گزینههای قابل استفاده، ببینید:
- گزینههای ممکن
- گزینههای تحلیل وابستگی ماژول
- گزینههای فیلتر کردن وابستگیها
- گزینههای فیلتر کردن کلاسهای مورد تحلیل
- path
- مسیر فایل .class، دایرکتوری یا فایل JAR برای تحلیل.
توضیحات (DESCRIPTION)
دستور jdeps وابستگیهای سطح بسته یا سطح کلاس فایلهای کلاس جاوا را نشان میدهد. کلاس ورودی میتواند مسیر یک فایل .class، یک دایرکتوری، یک فایل JAR باشد، یا میتواند یک نام کلاس کامل (fully qualified) برای تحلیل همه فایلهای کلاس باشد. گزینهها خروجی را تعیین میکنند. بهطور پیشفرض، دستور 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...]
- ماژولها را برای تحلیل به مجموعه ریشه اضافه میکند.
- --multi-release version
- نسخه را هنگام پردازش فایلهای JAR چندنسخهای (multi-release) مشخص میکند. version باید یک عدد صحیح >=9 یا 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) را چاپ میکند. همچنین هرگونه صادرات دارای قید (qualified exports) بلااستفاده را شناسایی میکند.
- --list-deps
- وابستگیهای ماژول و همچنین نام بستههای APIهای داخلی JDK را (در صورت ارجاع) فهرست میکند. این گزینه کتابخانههای موجود در class path و module path را در صورت ارجاع، بهطور متعدی تحلیل میکند. برای تحلیل وابستگیهای غیرمتعدی از گزینه --no-recursive استفاده کنید.
- --list-reduced-deps
- مشابه با --list-deps بدون فهرست کردن یالهای خواندن ضمنی (implied reads) از گراف ماژول. اگر ماژول M1 ماژول M2 را بخواند و M2 به M3 وابستگی متعدی (requires transitive) داشته باشد، خواندن 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 25.0.4.1 |