Java 8 中的 Java 类依赖分析器,示例
原文:https://www . geesforgeks . org/Java-class-dependency-analyzer-in-Java-8-with-examples/
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<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
List<String> 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.class 文件,编译器会生成 Geeks.class 文件,我们必须使用这个文件作为 jdeps 的输入。在这里,我运行的是 Java 9,我们将看到 jdeps 的输出,按照 Java 9,这个 Geeks.class 文件有不同的选项。
输出:
jdeps Geeks.class
【jdeps 有多种选择:
-
-dotoutput directoryPath: If we will use this option, then jdeps will generate one dot file into the directory per each analyzed archive named .dot listing the dependencies. It will also generate a summary file named summary.dot specifying the dependencies among the archives.
输出:
java jdeps -dotoutput C:\Users\DubeyBis\Desktop\jdeps Geeks.class
它会在 C:\ Users \ DubeyBis \ Desktop \ jdeps 文件夹内生成两个文件,名称分别为 Geeks.class.dot 和 summary.dot ,这些文件的内容如下:
极客.类.点
```java digraph "Geeks.class" { // Path: Geeks.class "" -> "java.io (java.base)"; "" -> "java.lang (java.base)"; "" -> "java.lang.invoke (java.base)"; "" -> "java.util (java.base)"; }
```
小结点
```java digraph "summary" { "Geeks.class" -> "rt.jar"; }
```
-
-summary: It will print only the summary. Instead of -summary, we can use -s also.
输出:
java jdeps -summary Geeks.class
-
-verbose: It will print all class-level dependencies. Instead of -verbose, we can use -v also.
输出:
java jdeps -verbose Geeks.class
-
-详细:包:打印包级依赖关系,不包括同一归档内的依赖关系。
-
-verbose:class: Prints class-level dependencies excluding dependencies within the same archive.
输出:
java jdeps -verbose:class Geeks.class
版权属于:月萌API www.moonapi.com,转载请注明出处