Review request: 8003562: Provide a command-line tool to find static dependencies

Mandy Chung mandy.chung at
Wed Dec 5 17:36:30 PST 2012

This review request (add a new jdeps tool in the JDK) include changes in
langtools and the jdk build.  I would need reviewers from the langtools
and the build-infra team.

Webrev for review:

The jdeps source is in the langtools repo.  The change in the jdk repo is
to add the new jdeps executable.  I made change in the old and new build
for the addition of this new jdeps tool.  I discussed with Jon whether I
should modify langtools/make/build.xml to add a new jdeps target. Since
the old build will be replaced by the new build soon, I simply add
com/sun/tools/jdeps as part of javap.includes.


The -d option is kept as a hidden option and use as implementation. We
can remove it when it's determined not useful in the future.  I also
rename -v:summary to -summary.



$ jdep -h
Usage: jdeps <options> <files....>
where possible options include:
   -version                 Version information
   -classpath <path>        Specify where to find class files
   -summary                 Print dependency summary only
   -v:class                 Print class-level dependencies
   -v:package               Print package-level dependencies
   -p <package name>        Restrict analysis to classes in this package
                            (may be given multiple times)
   -e <regex>               Restrict analysis to packages matching pattern
                            (-p and -e are exclusive)
   -P  --profile            Show profile or the file containing a package
   -R  --recursive          Traverse all dependencies recursively
   -all                     Process all classes specified in -classpath

$ jdep Notepad.jar Ensemble.jar
Notepad.jar -> D:\tools\devtools\jdk8\windows-i586\jre\lib\rt.jar
<unnamed> (Notepad.jar)
       -> java.awt
       -> java.awt.event
       -> java.beans
       -> java.lang
       -> java.util
       -> java.util.logging
       -> javax.swing
       -> javax.swing.border
       -> javax.swing.event
       -> javax.swing.text
       -> javax.swing.tree
       -> javax.swing.undo

Ensemble.jar -> D:\tools\devtools\jdk8\windows-i586\jre\lib\jfxrt.jar
Ensemble.jar -> D:\tools\devtools\jdk8\windows-i586\jre\lib\rt.jar
    com.javafx.main (Ensemble.jar)
       -> java.applet
       -> java.awt
       -> java.awt.event
       -> java.lang
       -> java.lang.reflect
       -> java.util
       -> java.util.jar
       -> javax.swing
       -> sun.misc                                 JDK internal API (rt.jar)

More information about the compiler-dev mailing list