从 Java 8 到 Java 9
在 Java 8 和 Java 9 版本之间有一个比较大的跨越:模块化系统(Module System)。
如果使用 Java 8 以后的版本,那么推荐使用 Java 11 或 Java 17,因为它们是 LTS(long-term support,长期提供技术支持的)版本。
在 Java 9 之后的版本当中,为了使用
tools.jar
在 Java 8 版本中,com.sun.tools.attach
包位于 tools.jar
文件,来进行 Dynamic Attach。在 pom.xml
文件中,有相应的依赖:
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>8</version>
<scope>system</scope>
<systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
相应的,Java 9 之后版本,引入了模块化系统(Module System),这样 tools.jar
文件也不存在了。
那么,com.sun.tools.attach
包位于 jdk.attach
模块当中,
此时需要我们在 module-info.java
文件添加对 jdk.attach
的依赖:
module lsieun.java.agent {
requires java.instrument;
requires java.management;
requires jdk.attach;
requires org.objectweb.asm;
}