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