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
登录后复制
jdeprscan 工具:
- “jdeprscan”是一个 Java 弃用 API 扫描器工具,可用于扫描弃用的 API 元素。 li>
- “jdeprscan class_file”命令扫描给定 jJava 类文件中已弃用的 API。
- “jdeprscan jar_file”命令扫描给定 jar 文件的已弃用 API。
- “jdeprscan --release X”命令扫描特定 JDK 版本的已弃用 API。
- “jdeprscan --list --release X”命令列出了特定 JDK 版本的所有已弃用的 API。
在下面,我们可以使用“jdeprscan --help”命令查看完整的选项列表。
C:UsersUser>jdeprscan --help
Usage: jdeprscan [options] {dir|jar|class} ...
options:
--class-path PATH
--for-removal
--full-version
-h --help
-l --list
--release 6|7|8|9
-v --verbose
--version
Scans each argument for usages of deprecated APIs. An argument may be a directory specifying the root of a package hierarchy,
a JAR file, a class file, or a class name. The class name must be specified using a fully qualified class name using the $ separator
character for nested classes, for example,
java.lang.Thread$State
The --class-path option provides a search path for resolution of dependent classes.
The --for-removal option limits scanning or listing to APIs that are
deprecated for removal. Cannot be used with a release value of 6, 7, or 8.
The --full-version option prints out the full version string of the tool.
The --help option prints out a full help message.
The --list (-l) option prints out the set of deprecated APIs. No scanning is done,
so no directory, jar, or class arguments should be provided.
The --release option specifies the Java SE release that provides the set of deprecated APIs for scanning.
The --verbose (-v) option enables additional message output during processing.
The --version option prints out the abbreviated version string of the tool.
登录后复制
以上就是Java 9中Jdeps和Jdeprscan工具之间的区别是什么?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!