Java Platform, Standard Editionツール・リファレンス
目次      

jdeps

Javaクラスに依存するアナライザです。

形式

jdeps [options] classes ...

options

コマンド行オプション。「オプション」を参照してください。

classes

分析されるクラスの名前です。クラス・パスで検索できるクラスは、そのファイル名、ディレクトリまたはJARファイルで指定できます。

説明

jdepsコマンドは、Javaクラス・ファイルの依存関係をパッケージ・レベルまたはクラス・レベルで表示します。入力クラスには、.classファイル、ディレクトリ、JARファイルへのパス名、またはすべてのクラス・ファイルが分析されるクラスの完全修飾名を指定できます。出力は、オプションによって決まります。デフォルトでは、jdepsはシステム出力に依存関係を出力します。依存関係はDOT言語で生成できます(-dotoutputオプションを参照)。

オプション

-dotoutput <dir>

DOTファイルの出力先ディレクトリです。これを指定した場合、jdepsは分析対象のアーカイブごとに、<archive-file-name>.dotという名前のドット・ファイルを1つ生成します。また、アーカイブ間の依存関係を一覧表示したsummary.dotという名前のサマリー・ファイルも生成します。

-s
-summary

依存関係のサマリーのみを出力します。

-v
-verbose

クラス・レベルの依存関係をすべて出力します。

-verbose:package

同じアーカイブ内の依存関係を除く、パッケージ・レベルの依存関係を出力します。

-verbose:class

同じアーカイブ内の依存関係を除く、クラス・レベルの依存関係を出力します。

-cp <path>
-classpath <path>

クラス・ファイルの検索場所を指定します。

クラス・パスの設定」も参照してください。

-p <pkg name>
-package <pkg name>

指定されたパッケージで依存関係を検索します。このオプションは、様々なパッケージに対して複数回指定できます。-pオプションと-eオプションは、相互に排他的です。

-e <regex>
-regex <regex>

指定された正規表現パターンに一致するパッケージで依存関係を検索します。-pオプションと-eオプションは、相互に排他的です。

-include <regex>

パターンに一致するクラスに分析を制限します。このオプションを使用すると、分析対象クラスのリストがフィルタリングされます。パターンを依存関係に適用する-pおよび-eとともに使用できます。

-jdkinternals

JDKの内部APIでクラス・レベルの依存関係を検索します。デフォルトでは、-includeオプションが指定されていなければ、-classpathオプションおよび入力ファイルで指定されたクラスがすべて分析されます。このオプションは、-p-eおよび-sオプションと一緒に使用できません。

警告: 次回のリリースでは、JDKの内部APIにアクセスできなくなる可能性があります。

-P
-profile

パッケージを含むプロファイルまたはファイルを表示します。

-apionly

分析をAPI、たとえば、パブリック・クラスのpublicおよびprotectedメンバーの署名からの依存関係(フィールドの型、メソッド・パラメータの型、戻り値の型、チェック例外の型を含む)に制限します。

-R
-recursive

すべての依存関係を再帰的に分析します。

-version

バージョン情報を出力します。

-h
-?
-help

jdepsのヘルプ・メッセージを出力します。

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  

-Pまたは-profileオプションを使用して、Notepadが依存するプロファイルを表示します。

$ 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

指定されたクラスパス内の特定のクラス(tools.jarファイル内のcom.sun.tools.jdeps.Mainクラスなど)の直接的な依存関係を分析します。

$ 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

Notepadデモの依存関係のドット・ファイルを生成します。

$ jdeps -dotoutput dot demo/jfc/Notepad/Notepad.jar

jdepsは指定されたJARファイルごとに、-dotoutputオプションで指定されたドット・ディレクトリに<filename>.dotという名前のドット・ファイルを1つ作成します。また、JARファイル間の依存関係を一覧表示するsummary.dotという名前のサマリー・ファイルも作成します。

$ 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";
}

関連項目

目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.