プライマリ・コンテンツに移動
Java Platform, Standard Editionツール・リファレンス
リリース9
E91918-01
目次へ移動
目次

前
次

jdeps

jdepsコマンドは、Javaクラスの依存関係アナライザを起動する場合に使用します。

形式

jdeps [options] path ...
options
コマンド行オプション。使用可能なオプションの詳細は、次の各項を参照してください。
path

分析する.classファイル、ディレクトリまたはJARファイルのパス名。

説明

jdepsコマンドは、Javaクラス・ファイルの依存関係をパッケージ・レベルまたはクラス・レベルで表示します。入力クラスには、.classファイル、ディレクトリ、JARファイルへのパス名、またはすべてのクラス・ファイルが分析されるクラスの完全修飾名を指定できます。出力は、オプションによって決まります。デフォルトでは、jdepsコマンドはシステム出力に依存関係を書き込みます。このコマンドは、依存関係をDOT言語で生成できます(-dotoutputオプションを参照)。

有効なオプション

-dotoutput dirまたは--dot-output dir

DOTファイルの出力先ディレクトリを指定します。このオプションを指定した場合、jdeps コマンドは、分析対象のアーカイブごとに、依存関係をリストするarchive-file-name.dotという名前の.dotファイルを1つを生成し、アーカイブ間の依存関係をリストする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または--classpath 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以上の整数またはbaseにする必要があります。

—qまたは-quite

–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 (参照される場合)のパッケージ名もリストします。

--list—reduced-deps

--list-depsと同じですが、モジュール・グラフからの含意された読取りエッジをリストしません。モジュールM1がM2を読み取り、M2はM3上で推移的である必要がある場合、M3を読み取るM1は含意されており、グラフには表示されません。

依存関係をフィルタするオプション

-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または-filterregex

指定されたパターンに一致する依存関係をフィルタします。複数回指定した場合は、最後のものが選択されます。

-filter:package

同じパッケージ内の依存関係をフィルタします。これはデフォルトです。

-filter:archive

同じアーカイブ内の依存関係をフィルタします。

-filter:module

同じモジュール内の依存関係をフィルタします。

-filter:none

-filter:packageおよび-filter:archiveのフィルタリングは行われません。-filterオプションで指定されたフィルタリングが引き続き適用されます。

分析対象のクラスをフィルタするオプション

-include regex

パターンに一致するクラスに分析を制限します。このオプションを使用すると、分析対象クラスのリストがフィルタリングされます。パターンを依存関係に適用する-pおよび-eとともに使用できます。

-Pまたは-profile

パッケージを含むプロファイルを表示します。

-Rまたは-recursive

すべてのランタイム依存関係を再帰的にトラバースします。-Rオプションは-filter:noneを意味します。-p-eまたは-fオプションを指定した場合、一致する依存関係のみが分析されます。

-Iまたは-inverse

他の指定されたオプションごとに依存関係を分析し、一致するノードに直接および間接的に依存するアーティファクトをすべて検索します。これは、コンパイル時の表示分析および出力依存関係サマリーの逆に相当します。このオプションは、--require--packageまたは--regexオプションと一緒に使用する必要があります。

--compile-time

-Rオプションのコンパイル時の表示など、推移的な依存関係のコンパイル時の表示を分析します。他の指定されたオプションごとに依存関係を分析します。ディレクトリ、JARファイルまたはモジュールから依存関係が検出された場合、その含んでいるアーカイブ内のクラスがすべて分析されます。

依存関係の分析例

次の例では、Notepad.jarファイルの依存関係の分析を示します。

Oracle Solaris、LinuxおよびOS X:

$ 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