Javaクラスに依存するアナライザです。
jdeps [options] classes ...
コマンド行オプション。「オプション」を参照してください。
分析されるクラスの名前です。クラス・パスで検索できるクラスは、そのファイル名、ディレクトリまたはJARファイルで指定できます。
jdeps
コマンドは、Javaクラス・ファイルの依存関係をパッケージ・レベルまたはクラス・レベルで表示します。入力クラスには、.class
ファイル、ディレクトリ、JARファイルへのパス名、またはすべてのクラス・ファイルが分析されるクラスの完全修飾名を指定できます。出力は、オプションによって決まります。デフォルトでは、jdeps
はシステム出力に依存関係を出力します。依存関係はDOT言語で生成できます(-dotoutput
オプションを参照)。
DOTファイルの出力先ディレクトリです。これを指定した場合、jdeps
は分析対象のアーカイブごとに、<archive-file-name>.dotという名前のドット・ファイルを1つ生成します。また、アーカイブ間の依存関係を一覧表示したsummary.dotという名前のサマリー・ファイルも生成します。
依存関係のサマリーのみを出力します。
クラス・レベルの依存関係をすべて出力します。
同じアーカイブ内の依存関係を除く、パッケージ・レベルの依存関係を出力します。
同じアーカイブ内の依存関係を除く、クラス・レベルの依存関係を出力します。
クラス・ファイルの検索場所を指定します。
「クラス・パスの設定」も参照してください。
指定されたパッケージで依存関係を検索します。このオプションは、様々なパッケージに対して複数回指定できます。-p
オプションと-e
オプションは、相互に排他的です。
指定された正規表現パターンに一致するパッケージで依存関係を検索します。-p
オプションと-e
オプションは、相互に排他的です。
パターンに一致するクラスに分析を制限します。このオプションを使用すると、分析対象クラスのリストがフィルタリングされます。パターンを依存関係に適用する-p
および-e
とともに使用できます。
JDKの内部APIでクラス・レベルの依存関係を検索します。デフォルトでは、-include
オプションが指定されていなければ、-classpath
オプションおよび入力ファイルで指定されたクラスがすべて分析されます。このオプションは、-p
、-e
および-s
オプションと一緒に使用できません。
警告: 次回のリリースでは、JDKの内部APIにアクセスできなくなる可能性があります。
パッケージを含むプロファイルまたはファイルを表示します。
分析をAPI、たとえば、パブリック・クラスのpublic
およびprotected
メンバーの署名からの依存関係(フィールドの型、メソッド・パラメータの型、戻り値の型、チェック例外の型を含む)に制限します。
すべての依存関係を再帰的に分析します。
バージョン情報を出力します。
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"; }