Java 8 中的Java类依赖分析器和示例
Java类依赖分析器: jdeps是JDK 8中引入的一个新的命令行工具,用于了解应用程序的静态依赖项和库,即 jdeps 命令显示Java类文件的包级别或类级别的依赖关系。 jdeps 的输入可以是 .class 文件路径名、JAR 文件,也可以是用于分析所有类文件的完全限定类名。每当我们向 jdeps 命令行工具提供任何输入时,它就会生成对系统控制台的依赖项。 jdeps 引入了各种影响输出的选项。根据选项,jdeps 命令行工具生成输出。
例子:
// Simple Java program to see the jdeps
// generated output with various options
import java.util.List;
import java.util.ArrayList;
class Geeks {
public static void main(String args[])
{
List list1 = new ArrayList<>();
List list2 = new ArrayList<>();
List list3 = new ArrayList<>();
list1.add("Geeks");
list2.add("for");
list3.add("geeks");
System.out.println(list1);
System.out.println(list2);
System.out.println(list3);
}
}
注意:我们必须在 Geeks 之上编译。 Java文件和编译器将生成 Geeks.class 文件,我们必须将此文件用作 jdeps 的输入。在这里,我使用Java 9 运行,我们将看到 jdeps 的输出,根据Java 9,此 Geeks.class 文件具有不同的选项。
输出:
jdeps Geeks.class
可用于 jdeps 的各种选项:
- -dotoutput directoryPath :如果我们将使用此选项,那么 jdeps 将在每个名为 .dot 的已分析档案的目录中生成一个点文件,其中列出了依赖项。它还将生成一个名为 summary.dot 的摘要文件,指定档案之间的依赖关系。
输出:
jdeps -dotoutput C:\Users\DubeyBis\Desktop\jdeps Geeks.class
它将在 C:\Users\DubeyBis\Desktop\jdeps 文件夹中生成两个文件,名称为Geeks.class.dot和summary.dot ,这些文件的内容如下:
极客.class.dot
digraph "Geeks.class" { // Path: Geeks.class "" -> "java.io (java.base)"; "" -> "java.lang (java.base)"; "" -> "java.lang.invoke (java.base)"; "" -> "java.util (java.base)"; }
摘要.dot
digraph "summary" { "Geeks.class" -> "rt.jar"; }
- -summary :它将仅打印摘要。除了 -summary,我们也可以使用 -s。
输出:
jdeps -summary Geeks.class
- -verbose :它将打印所有类级别的依赖项。除了 -verbose,我们也可以使用 -v。
输出:
jdeps -verbose Geeks.class
- -verbose:package :打印包级依赖项,不包括同一存档中的依赖项。
- -verbose:class :打印类级别的依赖关系,不包括同一存档中的依赖关系。
输出:
jdeps -verbose:class Geeks.class