如何在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
相关产品推荐
相关产品推荐

