jdeps [options] classes ...
options
classes
jdepsコマンドは、Javaクラス・ファイルのパッケージレベルまたはクラスレベルの依存性を示します。入力クラスには、.classファイルのパス名、ディレクトリ、JARファイル、またはすべてのクラス・ファイルを分析するための完全修飾クラス名を指定できます。オプションにより出力が決定します。デフォルトでは、jdepsはシステム出力に依存関係を出力します。DOT言語で依存関係を生成できます(-dotoutputオプションを参照)。
-dotoutput <dir>
-s
-summary
-v
-verbose
-verbose:package
-verbose:class
-cp <path>
-classpath <path>
クラス・パスの設定 も参照してください。
-p <pkg name>
-package <pkg name>
-e <regex>
-regex <regex>
-include <regex>
-jdkinternals
警告: JDKの内部APIは、今後のリリースでアクセスできなくなる可能性があります。
-P
-profile
-apionly
-R
-recursive
-version
-h
-?
-help
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オプションを使用して、メモ帳が依存するプロファイルを表示します。
$ 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
メモ帳デモの依存関係のdotファイルを生成します。
$ jdeps -dotoutput dot demo/jfc/Notepad/Notepad.jar
jdepsは、-dotoutputオプションで指定されたdotディレクトリに<filename>.dotという名前のdotファイルを特定のJARファイルごとに作成し、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";
}