jdeps(1) Basic Tools jdeps(1) نام (NAME) jdeps-openjdk11 - تحلیل‌گر وابستگی‌های کلاس جاوا خلاصه دستور (SYNOPSIS) jdeps [options] classes ... options گزینه‌های خط فرمان. بخش گزینه‌ها را ببینید. classes نام کلاس‌ها برای تحلیل. می‌توانید کلاسی را مشخص کنید که در مسیر کلاس (class path) با نام فایل آن، یک دایرکتوری یا یک فایل JAR پیدا شود. توضیحات (DESCRIPTION) دستور jdeps وابستگی‌های فایل‌های کلاس جاوا را در سطح بسته یا در سطح کلاس نمایش می‌دهد. کلاس ورودی می‌تواند مسیر یک فایل .class، یک دایرکتوری، یک فایل JAR یا یک نام کامل کلاس (fully qualified class name) برای تحلیل تمام فایل‌های کلاس باشد. گزینه‌ها نوع خروجی را تعیین می‌کنند. به‌طور پیش‌فرض، jdeps وابستگی‌ها را در خروجی سیستم چاپ می‌کند. این ابزار می‌تواند وابستگی‌ها را در زبان DOT تولید کند (گزینه -dotoutput را ببینید). گزینه‌ها (OPTIONS) -dotoutput دایرکتوری مقصد برای خروجی فایل DOT. در صورت تعیین، jdeps برای هر آرشیو تحلیل‌شده یک فایل dot با نام .dot شامل فهرست وابستگی‌ها و همچنین یک فایل خلاصه با نام summary.dot شامل فهرست وابستگی‌های میان آرشیوها تولید می‌کند. -s, -summary تنها خلاصه وابستگی‌ها را چاپ می‌کند. -v, -verbose تمام وابستگی‌ها در سطح کلاس را چاپ می‌کند. -verbose:package وابستگی‌ها در سطح بسته را بدون احتساب وابستگی‌های درون همان آرشیو چاپ می‌کند. -verbose:class وابستگی‌ها در سطح کلاس را بدون احتساب وابستگی‌های درون همان آرشیو چاپ می‌کند. -cp , -classpath محل یافتن فایل‌های کلاس را مشخص می‌کند. همچنین بخش تنظیم مسیر کلاس (Setting the Class Path) را ببینید. -p , -package وابستگی‌ها را در بسته مشخص‌شده پیدا می‌کند. می‌توانید این گزینه را چندین بار برای بسته‌های مختلف مشخص کنید. گزینه‌های -p و -e مانعة‌الجمع هستند. -e , -regex وابستگی‌ها را در بسته‌هایی که با الگوی عبارت باقاعده (regex) مشخص‌شده مطابقت دارند پیدا می‌کند. گزینه‌های -p و -e مانعة‌الجمع هستند. -include تحلیل را به کلاس‌هایی که با الگو مطابقت دارند محدود می‌کند. این گزینه فهرست کلاس‌های مورد تحلیل را فیلتر می‌کند. این گزینه را می‌توان همراه با -p و -e که الگو را روی وابستگی‌ها اعمال می‌کنند به کار برد. -jdkinternals وابستگی‌های در سطح کلاس به APIهای داخلی JDK را پیدا می‌کند. به‌طور پیش‌فرض، تمام کلاس‌های مشخص‌شده در گزینه -classpath و فایل‌های ورودی را تحلیل می‌کند مگر اینکه گزینه -include را مشخص کرده باشید. نمی‌توانید از این گزینه همراه با گزینه‌های -p، -e و -s استفاده کنید. هشدار: ممکن است APIهای داخلی JDK در نسخه‌های بعدی در دسترس نباشند. -P, -profile پروفایل یا فایل حاوی یک بسته را نمایش می‌دهد. -apionly تحلیل را به APIها محدود می‌کند؛ به عنوان مثال، وابستگی‌های ناشی از امضای اعضای public و protected کلاس‌های عمومی، شامل نوع فیلد، انواع پارامترهای متد، نوع بازگشتی و انواع استثناهای بررسی‌شده (checked exceptions). -R, -recursive تمام وابستگی‌ها را به‌صورت بازگشتی پیمایش می‌کند. -version اطلاعات نسخه را چاپ می‌کند. -h, -?, -help پیام راهنمای jdeps را چاپ می‌کند. مثال‌ها (EXAMPLES) تحلیل وابستگی‌های Notepad.jar. $ jdeps demo/jfc/Notepad/Notepad.jar demo/jfc/Notepad/Notepad.jar -> /usr/java/jre/lib/rt.jar (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 استفاده از گزینه -P یا -profile برای نمایش اینکه Notepad به کدام پروفایل وابسته است. $ jdeps -profile demo/jfc/Notepad/Notepad.jar demo/jfc/Notepad/Notepad.jar -> /usr/java/jre/lib/rt.jar (Full JRE) (Notepad.jar) -> java.awt Full JRE -> java.awt.event Full JRE -> java.beans Full JRE -> java.io compact1 -> java.lang compact1 -> java.net compact1 -> java.util compact1 -> java.util.logging compact1 -> javax.swing Full JRE -> javax.swing.border Full JRE -> javax.swing.event Full JRE -> javax.swing.text Full JRE -> javax.swing.tree Full JRE -> javax.swing.undo Full JRE تحلیل وابستگی‌های مستقیم یک کلاس خاص در یک مسیر کلاس مشخص، به عنوان مثال کلاس com.sun.tools.jdeps.Main در فایل tools.jar. $ jdeps -cp lib/tools.jar com.sun.tools.jdeps.Main lib/tools.jar -> /usr/java/jre/lib/rt.jar com.sun.tools.jdeps (tools.jar) -> java.io -> java.lang استفاده از گزینه -verbose:class برای یافتن وابستگی‌ها در سطح کلاس، یا استفاده از گزینه -v یا -verbose برای شامل کردن وابستگی‌های درون همان فایل JAR. $ jdeps -verbose:class -cp lib/tools.jar com.sun.tools.jdeps.Main lib/tools.jar -> /usr/java/jre/lib/rt.jar com.sun.tools.jdeps.Main (tools.jar) -> java.io.PrintWriter -> java.lang.Exception -> java.lang.Object -> java.lang.String -> java.lang.System استفاده از گزینه -R یا -recursive برای تحلیل وابستگی‌های متعدی کلاس com.sun.tools.jdeps.Main. $ jdeps -R -cp lib/tools.jar com.sun.tools.jdeps.Main lib/tools.jar -> /usr/java/jre/lib/rt.jar com.sun.tools.classfile (tools.jar) -> java.io -> java.lang -> java.lang.reflect -> java.nio.charset -> java.nio.file -> java.util -> java.util.regex com.sun.tools.jdeps (tools.jar) -> java.io -> java.lang -> java.nio.file -> java.nio.file.attribute -> java.text -> java.util -> java.util.jar -> java.util.regex -> java.util.zip /usr/java/jre/lib/jce.jar -> /usr/java/jre/lib/rt.jar javax.crypto (jce.jar) -> java.io -> java.lang -> java.lang.reflect -> java.net -> java.nio -> java.security -> java.security.cert -> java.security.spec -> java.util -> java.util.concurrent -> java.util.jar -> java.util.regex -> java.util.zip -> javax.security.auth -> sun.security.jca JDK internal API (rt.jar) -> sun.security.util JDK internal API (rt.jar) javax.crypto.spec (jce.jar) -> java.lang -> java.security.spec -> java.util /usr/java/jre/lib/rt.jar -> /usr/java/jre/lib/jce.jar java.security (rt.jar) -> javax.crypto تولید فایل‌های dot از وابستگی‌های نسخه نمایشی Notepad. $ jdeps -dotoutput dot demo/jfc/Notepad/Notepad.jar دستور jdeps برای هر فایل JAR داده‌شده یک فایل dot با نام .dot در دایرکتوری dot مشخص‌شده در گزینه -dotoutput ایجاد می‌کند، و همچنین یک فایل خلاصه با نام summary.dot ایجاد خواهد کرد که وابستگی‌های میان فایل‌های JAR را فهرست می‌کند. $ cat dot/Notepad.jar.dot digraph "Notepad.jar" { // Path: demo/jfc/Notepad/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"; } $ cat dot/summary.dot digraph "summary" { "Notepad.jar" -> "rt.jar"; } همچنین ببینید (SEE ALSO) • javap(1) JDK 8 21 November 2013 jdeps(1)