jdeps(1) Basic Tools jdeps(1)

jdeps - تحلیل‌گر وابستگی‌های کلاس جاوا.

jdeps [options] classes ...
گزینه‌های خط فرمان. بخش گزینه‌ها را ببینید.
نام کلاس‌ها برای تحلیل. می‌توانید کلاسی را مشخص کنید که در مسیر کلاس (class path) با نام فایل آن، یک دایرکتوری یا یک فایل JAR یافت می‌شود.

دستور jdeps وابستگی‌های در سطح بسته یا سطح کلاسِ فایل‌های کلاس جاوا را نمایش می‌دهد. کلاس ورودی می‌تواند نام مسیر به یک فایل .class، یک دایرکتوری، یک فایل JAR، یا نام کامل کلاس (fully qualified class name) برای تحلیل همهٔ فایل‌های کلاس باشد. گزینه‌ها خروجی را تعیین می‌کنند. به‌طور پیش‌فرض، jdeps وابستگی‌ها را به خروجی سیستم ارسال می‌کند. همچنین می‌تواند وابستگی‌ها را به زبان DOT تولید کند (گزینهٔ -dotoutput را ببینید).


دایرکتوری مقصد برای خروجی فایل DOT. در صورت مشخص شدن، jdeps به ازای هر آرشیو تحلیل‌شده یک فایل dot به نام <archive-file-name>.dot حاوی فهرست وابستگی‌ها، و همچنین یک فایل خلاصه به نام summary.dot حاوی فهرست وابستگی‌های بین آرشیوها تولید می‌کند.

تنها خلاصهٔ وابستگی‌ها را چاپ می‌کند.

تمام وابستگی‌های در سطح کلاس را چاپ می‌کند.

وابستگی‌های در سطح بسته را بدون احتساب وابستگی‌های درون همان آرشیو چاپ می‌کند.

وابستگی‌های در سطح کلاس را بدون احتساب وابستگی‌های درون همان آرشیو چاپ می‌کند.

محل جستجوی فایل‌های کلاس را مشخص می‌کند.

همچنین بخش تنظیم مسیر کلاس (Setting the Class Path) را ببینید.


وابستگی‌ها را در بستهٔ مشخص‌شده پیدا می‌کند. می‌توانید این گزینه را چندین بار برای بسته‌های مختلف مشخص کنید. گزینه‌های -p و -e مانعة‌الجمع هستند.

وابستگی‌ها را در بسته‌هایی که با الگوی عبارت باقاعدهٔ مشخص‌شده مطابقت دارند، پیدا می‌کند. گزینه‌های -p و -e مانعة‌الجمع هستند.

تحلیل را به کلاس‌های منطبق با الگو محدود می‌کند. این گزینه فهرست کلاس‌های مورد تحلیل را فیلتر می‌کند. می‌توان آن را همراه با -p و -e که الگو را روی وابستگی‌ها اعمال می‌کنند، به کار برد.

وابستگی‌های در سطح کلاس را در APIهای داخلی JDK پیدا می‌کند. به‌طور پیش‌فرض، تمام کلاس‌های مشخص‌شده در گزینهٔ -classpath و فایل‌های ورودی را تحلیل می‌کند، مگر اینکه گزینهٔ -include را مشخص کرده باشید. نمی‌توانید از این گزینه همراه با گزینه‌های -p، -e و -s استفاده کنید.

هشدار: ممکن است APIهای داخلی JDK در انتشار‌های آینده در دسترس نباشند.


پروفایل یا فایل حاوی یک بسته را نشان می‌دهد.

تحلیل را به APIها محدود می‌کند؛ برای مثال، وابستگی‌های ناشی از امضای اعضای public و protected کلاس‌های عمومی شامل نوع فیلد، انواع پارامترهای متد، نوع بازگشتی و انواع استثناهای بررسی‌شده (checked exception).

تمام وابستگی‌ها را به‌طور بازگشتی پیمایش می‌کند.

اطلاعات نسخه را چاپ می‌کند.

پیام راهنمای jdeps را چاپ می‌کند..SH "مثال‌ها (EXAMPLES)" تحلیل وابستگی‌های Notepad.jar.
$ jdeps demo/jfc/Notepad/Notepad.jar
demo/jfc/Notepad/Notepad.jar -> /usr/java/jre/lib/rt.jar
   <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  

برای نمایش پروفایلی که Notepad به آن وابسته است، از گزینه -P یا -profile استفاده کنید.

$ jdeps -profile demo/jfc/Notepad/Notepad.jar 
demo/jfc/Notepad/Notepad.jar -> /usr/java/jre/lib/rt.jar (Full JRE)
   <unnamed> (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

تحلیل وابستگی‌های مستقیم یک کلاس مشخص در یک classpath معین؛ برای نمونه کلاس 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 به نام <filename>.dot در دایرکتوری dot که در گزینهٔ -dotoutput مشخص شده است ایجاد می‌کند، و همچنین یک فایل خلاصه به نام summary.dot که وابستگی‌های میان فایل‌های JAR را فهرست خواهد کرد.

$ cat dot/Notepad.jar.dot 
digraph "Notepad.jar" {
    // Path: demo/jfc/Notepad/Notepad.jar
   "<unnamed>"                                        -> "java.awt";
   "<unnamed>"                                        -> "java.awt.event";
   "<unnamed>"                                        -> "java.beans";
   "<unnamed>"                                        -> "java.io";
   "<unnamed>"                                        -> "java.lang";
   "<unnamed>"                                        -> "java.net";
   "<unnamed>"                                        -> "java.util";
   "<unnamed>"                                        -> "java.util.logging";
   "<unnamed>"                                        -> "javax.swing";
   "<unnamed>"                                        -> "javax.swing.border";
   "<unnamed>"                                        -> "javax.swing.event";
   "<unnamed>"                                        -> "javax.swing.text";
   "<unnamed>"                                        -> "javax.swing.tree";
   "<unnamed>"                                        -> "javax.swing.undo";
}
$ cat dot/summary.dot
digraph "summary" {
   "Notepad.jar"                  -> "rt.jar";
}

•
javap(1)
21 November 2013 JDK 8