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 -> c:\Program Files\Java\jdk1.8.0\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 -> c:\Program Files\Java\jdk1.8.0\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 -> c:\Program Files\Java\jdk1.8.0\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 -> c:\Program Files\Java\jdk1.8.0\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 -> c:\Program Files\Java\jdk1.8.0\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
c:\Program Files\Java\jdk1.8.0\jre\lib\jce.jar -> c:\Program Files\Java\jdk1.8.0\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
c:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar -> c:\Program Files\Java\jdk1.8.0\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";
}