You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java 11 Spring Boot项目中使用jdk.attach模块?

在Java 11无模块环境中使用com.sun.tools.attach的问题

注意:此问题关联之前的提问

我尝试使用com.sun.tools.attach.VirtualMachine类(及其他所需类)检测应用以分析内存使用情况,但无法完成构建。我使用Oracle Java JDK 11(11.0.17),应用基于Spring Boot开发。

据了解,com.sun.tools在Java 9前属于JDK发行版,但我在$JAVA_HOME/lib中找不到tools.jar。若它不再属于JDK,该从何处获取?我尝试在pom.xml中添加依赖但无效。

进一步调研发现该功能现属于jdk.attach“模块”(对我而言是新术语)。有无无需使用模块即可访问此功能的方法?

我进一步研究后做了尝试:在默认包创建module-info.java,却发现需“引入”一堆此前由pom.xml自动处理的依赖,这似乎有些倒退。

我的尝试——失败

我尝试引入jdk.attach,但系统找不到它,也无法导入所需类。运行java --list-modules能看到该模块,但项目似乎“看不到”它。

我还意识到需将其他项目模块化以协同工作,这很麻烦,为何会如此?

module-info.java内容:

module app {
  requires org.slf4j;
  requires spring.context;
  requires spring.beans;
  requires spring.boot;
  requires spring.boot.autoconfigure;
  requires java.instrument;
  requires javassist;
  requires jdk.attach;
}

运行java --list-modules的输出:

$ java --list-modules
java.base@11.0.17
java.compiler@11.0.17
java.datatransfer@11.0.17
java.desktop@11.0.17
java.instrument@11.0.17
java.logging@11.0.17
java.management@11.0.17
java.management.rmi@11.0.17
java.naming@11.0.17
java.net.http@11.0.17
java.prefs@11.0.17
java.rmi@11.0.17
java.scripting@11.0.17
java.se@11.0.17
java.security.jgss@11.0.17
java.security.sasl@11.0.17
java.smartcardio@11.0.17
java.sql@11.0.17
java.sql.rowset@11.0.17
java.transaction.xa@11.0.17
java.xml@11.0.17
java.xml.crypto@11.0.17
jdk.accessibility@11.0.17
jdk.attach@11.0.17
jdk.charsets@11.0.17
jdk.compiler@11.0.17
jdk.crypto.cryptoki@11.0.17
jdk.crypto.ec@11.0.17
jdk.crypto.mscapi@11.0.17
jdk.dynalink@11.0.17
jdk.editpad@11.0.17
jdk.hotspot.agent@11.0.17
jdk.httpserver@11.0.17
jdk.internal.ed@11.0.17
jdk.internal.jvmstat@11.0.17
jdk.internal.le@11.0.17
jdk.internal.opt@11.0.17
jdk.internal.vm.ci@11.0.17
jdk.internal.vm.compiler@11.0.17
jdk.internal.vm.compiler.management@11.0.17
jdk.jartool@11.0.17
jdk.javadoc@11.0.17
jdk.jcmd@11.0.17
jdk.jconsole@11.0.17
jdk.jdeps@11.0.17
jdk.jdi@11.0.17
jdk.jdwp.agent@11.0.17
jdk.jfr@11.0.17
jdk.jlink@11.0.17
jdk.jshell@11.0.17
jdk.jsobject@11.0.17
jdk.jstatd@11.0.17
jdk.localedata@11.0.17
jdk.management@11.0.17
jdk.management.agent@11.0.17
jdk.management.jfr@11.0.17
jdk.naming.dns@11.0.17
jdk.naming.ldap@11.0.17
jdk.naming.rmi@11.0.17
jdk.net@11.0.17
jdk.pack@11.0.17
jdk.rmic@11.0.17
jdk.scripting.nashorn@11.0.17
jdk.scripting.nashorn.shell@11.0.17
jdk.sctp@11.0.17
jdk.security.auth@11.0.17
jdk.security.jgss@11.0.17
jdk.unsupported@11.0.17
jdk.unsupported.desktop@11.0.17
jdk.xml.dom@11.0.17
jdk.zipfs@11.0.17

内容的提问来源于stack exchange,提问作者Joseph Gagnon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:05:40