名前
jdeps - Javaクラス依存性アナライザを起動
シノプシス
jdeps
[options] path ...
- options
-
コマンド行オプション。 使用可能なオプションの詳細は、次の各項を参照してください。
- path
-
分析する
.class
ファイル、ディレクトリまたはJARファイルへのパス名。
説明
jdeps
コマンドは、Javaクラス・ファイルの依存関係をパッケージ・レベルまたはクラス・レベルで表示します。 入力クラスには、.class
ファイル、ディレクトリ、JARファイルへのパス名、またはすべてのクラス・ファイルが分析されるクラスの完全修飾名を指定できます。 出力は、オプションによって決まります。 デフォルトでは、jdeps
コマンドは依存関係をシステム出力に書き込みます。 このコマンドは、DOT言語(-dotoutput
オプションを参照)で依存関係を生成できます。
有効なオプション
-?
または-h
あるいは--help
- ヘルプ・メッセージを出力します。
-dotoutput
dirまたは--dot-output
dir-
DOTファイルの出力先ディレクトリを指定します。 このオプションが指定されている場合、
jdeps
コマンドは、依存関係をリストする分析済アーカイブarchive-file-name.dot
ごとに1つの.dot
ファイル、およびアーカイブ・ファイル間の依存関係をリストするsummary.dot
という名前のサマリー・ファイルを生成します。 -s
または-summary
- 依存関係のサマリーのみを出力します。
-v
または-verbose
-
クラス・レベルの依存関係をすべて出力します。 これは次の記述と同等です。
-verbose:class -filter:none
-verbose:package
- デフォルトでは同じアーカイブ内の依存関係を除く、パッケージ・レベルの依存関係を出力します。
-verbose:class
- デフォルトでは同じアーカイブ内の依存関係を除く、クラス・レベルの依存関係を出力します。
-apionly
または--api-only
-
分析をAPIに制限します。たとえば、フィールド・タイプ、メソッド・パラメータ・タイプ、戻り型、チェック済例外タイプなど、パブリック・クラスの
public
およびprotected
メンバーのシグネチャからの依存性などです。 -jdkinternals
または--jdk-internals
-
JDKの内部APIでクラス・レベルの依存関係を検索します。 デフォルトでは、
-include
オプションを指定しないかぎり、このオプションは--classpath
オプションおよび入力ファイルに指定されたすべてのクラスを分析します。 このオプションを-p
、-e
、および-s
オプションとともに使用することはできません。警告: JDKの内部APIにはアクセスできません。
-cp
path、-classpath
pathまたは--class-path
path- クラス・ファイルの検索場所を指定します。
--module-path
module-path- モジュール・パスを指定します。
--upgrade-module-path
module-path- アップグレード・モジュール・パスを指定します。
--system
java-home- 代替システム・モジュール・パスを指定します。
--add-modules
module-name[,
module-name...]- 分析のルート・セットにモジュールを追加します。
--multi-release
version- 複数のリリースJARファイルを処理する場合のバージョンを指定します。versionは、9またはベースの整数である必要があります。
-q
または-quiet
-
-generate-module-info
出力に失われた依存性は表示されません。 -version
または--version
- バージョン情報を出力します。
モジュール依存関係分析オプション
-m
module-nameまたは--module
module-name- 分析対象のルート・モジュールを指定します。
--generate-module-info
dir-
指定されたディレクトリの下に
module-info.java
を生成します。 指定されたJARファイルが分析されます。 このオプションは、--dot-output
または--class-path
オプションと一緒には使用できません。 開いているモジュールには--generate-open-module
オプションを使用します。 --generate-open-module
dir-
指定したディレクトリにある指定されたJARファイルの
module-info.java
をオープン・モジュールとして生成します。 このオプションは、--dot-output
または--class-path
オプションと一緒には使用できません。 --check
module-name [,
module-name...]- 指定されたモジュールの依存関係を分析します。 モジュール・ディスクリプタ、分析結果のモジュールの依存関係および遷移削減後のグラフを出力します。 また、未使用の修飾されたエクスポートも特定します。
--list-deps
-
モジュールの依存関係の他、JDKの内部API (参照される場合)のパッケージ名もリストします。 このオプションは、クラス・パスおよびモジュール・パス(参照されている場合)のライブラリを一時的に分析します。 非依存の依存性分析には、
--no-recursive
オプションを使用します。 --list-reduced-deps
-
モジュール・グラフから暗黙的な読取りエッジをリストせずに、
--list-deps
と同じです。 モジュールM1がM2を読み取り、M2はM3上で推移的である必要がある場合、M3を読み取るM1は含意されており、グラフには表示されません。 --print-module-deps
-
--list-reduced-deps
と同じで、モジュール依存関係のコンマ区切りリストを出力します。 この出力は、jlink --add-modules
で、これらのモジュールとその推移的な依存関係を含むカスタム・イメージを作成するために使用できます。 --ignore-missing-deps
- 欠落している依存関係を無視します。
依存関係をフィルタするオプション
-p
pkg_name、-package
pkg_nameまたは--package
pkg_name-
指定されたパッケージ名に一致する依存関係を検索します。 このオプションは、様々なパッケージに対して複数回指定できます。
-p
オプションと-e
オプションは、相互に排他的です。 -e
regex、-regex
regexまたは--regex
regex-
指定されたパターンに一致する依存関係を検索します。
-p
オプションと-e
オプションは、相互に排他的です。 --require
module-name-
指定されたモジュール名(複数回指定されることもあり)に一致する依存関係を検索します。
--package
、--regex
、および--require
オプションは相互に排他的です。 -f
regexまたは-filter
regex- 指定されたパターンに一致する依存関係をフィルタします。 複数回指定した場合は、最後のものが選択されます。
-filter:package
- 同じパッケージ内の依存関係をフィルタします。 これはデフォルトです。
-filter:archive
- 同じアーカイブ内の依存関係をフィルタします。
-filter:module
- 同じモジュール内の依存関係をフィルタします。
-filter:none
-
-filter:package
および-filter:archive
フィルタリングはありません。-filter
オプションで指定されたフィルタリングは引き続き適用されます。 --missing-deps
-
欠落している依存性が見つかります。 このオプションは、
-p
、-e
、および-s
オプションでは使用できません。
分析対象のクラスをフィルタするオプション
-include
regex-
パターンに一致するクラスに分析を制限します。 このオプションを使用すると、分析対象クラスのリストがフィルタリングされます。 パターンを依存関係に適用する
-p
および-e
と一緒に使用できます。 -R
または--recursive
-
すべてのランタイム依存関係を再帰的にトラバースします。
-R
オプションは-filter:none
を意味します。-p
、-e
、または-f
オプションが指定されている場合は、一致する依存関係のみが分析されます。 --no-recursive
- 依存関係を再帰的にトラバースしないでください。
-I
または--inverse
-
他の指定されたオプションごとに依存関係を分析し、一致するノードに直接および間接的に依存するアーティファクトをすべて検索します。 これは、コンパイル時の表示分析および出力依存関係サマリーの逆に相当します。 このオプションは、
--require
、--package
、または--regex
オプションとともに使用する必要があります。 --compile-time
-
-R
オプションのコンパイル時ビューなど、推移的依存関係のコンパイル時ビューを分析します。 他の指定されたオプションごとに依存関係を分析します。 ディレクトリ、JARファイルまたはモジュールから依存関係が検出された場合、その含んでいるアーカイブ内のクラスがすべて分析されます。
依存関係の分析例
次の例は、Notepad.jar
ファイルの依存性の分析を示しています。
LinuxおよびmacOS:
$ jdeps demo/jfc/Notepad/Notepad.jar
Notepad.jar -> java.base
Notepad.jar -> java.desktop
Notepad.jar -> java.logging
<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
Windows:
C:\Java\jdk1.9.0>jdeps demo\jfc\Notepad\Notepad.jar
Notepad.jar -> java.base
Notepad.jar -> java.desktop
Notepad.jar -> java.logging
<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
--inverseオプションの使用例
$ jdeps --inverse --require java.xml.bind
Inverse transitive dependences on [java.xml.bind]
java.xml.bind <- java.se.ee
java.xml.bind <- jdk.xml.ws
java.xml.bind <- java.xml.ws <- java.se.ee
java.xml.bind <- java.xml.ws <- jdk.xml.ws
java.xml.bind <- jdk.xml.bind <- jdk.xml.ws