Java 9中Jdeps和Jdeprscan工具之间的区别是什么?

Java 9中Jdeps和Jdeprscan工具之间的区别是什么?

Jdeps工具可用于分析我们的类的依赖关系。运行“jdeps -jdkinternals jararchive.jar”命令会打印使用 Java 内部 API 的所有类的列表。 Jdeps 工具返回依赖项的详细描述,而 Jdeprscan 是另一个有用的工具,特别与“-for-removal”标志结合使用。此工具向我们显示给定 jar 存档对已弃用的 API的所有使用,并且只能显示 jdk 方法的已弃用的使用,并且无法使用此工具检查第三方 jar 中的弃用情况.

Jdeps工具:

  • “jdeps”是一个类依赖分析工具,可用于包级别和类级别依赖关系。
  • “jdeps class_file”命令打印给定类文件的包级别依赖关系。
  • “jdeps” -verbose”命令打印类级依赖关系。
  • “jdeps jar_file”命令打印给定 jar 文件的包级依赖关系。
  • “jdeps --inverse --require module_name”命令打印给定 java 模块的包级反向依赖关系。

在下面,我们可以使用“jdeps --help”命令查看完整的选项列表。

C:Usersuser>jdeps --help Usage: jdeps ] can be a pathname to a .class file, a directory, a JAR file. Possible options include:   -dotoutput   --dot-output      Destination directory for DOT file output   -s        -summary      Print dependency summary only.   -v        -verbose      Print all class level dependences                           Equivalent to -verbose:class -filter:none.   -verbose:package        Print package-level dependences excluding                           dependences within the same package by default   -verbose:class          Print class-level dependences excluding                           dependences within the same package by default   -apionly   --api-only              Restrict analysis to APIs i.e. dependences                           from the signature of public and protected                           members of public classes including field                           type, method parameter types, returned type,                           checked exception types etc.   -jdkinternals   --jdk-internals         Finds class-level dependences on JDK internal                           APIs. By default, it analyzes all classes                           on --class-path and input files unless -include                           option is specified. This option cannot be                           used with -p, -e and -s options.                           WARNING: JDK internal APIs are inaccessible. --check [,...                           Analyze the dependence of the specified modules                           It prints the module descriptor, the resulting                           module dependences after analysis and the                           graph after transition reduction. It also                           identifies any unused qualified exports.   --generate-module-info                           Generate module-info.java under the specified                           directory. The specified JAR files will be                           analyzed. This option cannot be used with                           --dot-output or --class-path. Use                           --generate-open-module option for open modules.   --generate-open-module                           Generate module-info.java for the specified                           JAR files under the specified directory as                           open modules. This option cannot be used with                           --dot-output or --class-path.   --list-deps             Lists the dependences and use of JDK internal APIs.   --list-reduced-deps     Same as --list-deps with not listing                           the implied reads edges from the module graph                           If module M1 depends on M2 and M3,                           M2 requires public on M3, then M1 reading M3 is                           implied and removed from the module graph.   -cp   -classpath   --class-path     Specify where to find class files   --module-path                           Specify module path   --upgrade-module-path                           Specify upgrade module path   --system    Specify an alternate system module path   --add-modules [,...]                           Adds modules to the root set for analysis   -m   --module  Specify the root module for analysis   --multi-release                           Specifies the version when processing                           multi-release jar files. should                           be integer >= 9 or base. Options to filter dependences:   -p   -package   --package           Finds dependences matching the given package                             name (may be given multiple times).   -e   -regex   --regex           Finds dependences matching the given pattern.   --require   Finds dependences matching the given module                             name (may be given multiple times). --package,                             --regex, --require are mutual exclusive.   -f -filter Filter dependences matching the given                              pattern. If given multiple times, the last                              one will be used.   -filter:package            Filter dependences within the same package.                              This is the default.   -filter:archive            Filter dependences within the same archive.   -filter:module             Filter dependences within the same module.   -filter:none               No -filter:package and -filter:archive                              filtering. Filtering specified via the                              -filter option still applies. Options to filter classes to be analyzed:   -include           Restrict analysis to classes matching pattern                              This option filters the list of classes to                              be analyzed. It can be used together with                              -p and -e which apply pattern to the dependences   -P         -profile        Show profile containing a package   -R         -recursive      Recursively traverse all run-time dependences.                              The -R option implies -filter:none. If -p,                              -e, -f option is specified, only the matching                              dependences are analyzed.   -I          --inverse      Analyzes the dependences per other given options                              and then find all artifacts that directly                              and indirectly depend on the matching nodes.                              This is equivalent to the inverse of                              compile-time view analysis and print                              dependency summary. This option must use                              with --require, --package or --regex option.   --compile-time             Compile-time view of transitive dependences                              i.e. compile-time view of -R option.                              Analyzes the dependences per other given options                                If a dependence is found from a directory,                              a JAR file or a module, all c*lasses in that                              containing archive are analyzed.   -q           - quiet       Do not show missing dependences from                              --generate-module-info output.   -version     --version     Version information登录后复制