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)