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 استفاده کنید. هشدار: 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 چندنسخه‌ای (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 (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 (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 JDK 25.0.4.1 2026 JDEPS(1)