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

Java 17 jlink构建应用无法被JConsole连接,需补充哪些模块?

解决JConsole无法连接自定义jlink镜像中Java应用的问题

要让JConsole能正常连接使用jlink构建的自定义运行时镜像中的Java应用,除了你已经添加的java.management和jdk.management,还必须包含以下几个关键模块:

  • jdk.management.jfr:这个模块正是你缺失的management_ext.dll(Windows平台)的来源,它提供了JMX扩展功能,是本地JConsole与JVM建立连接的必要组件。
  • jdk.internal.jvmstat:负责收集JVM的统计数据,JConsole依赖它来发现和识别本地运行的JVM进程。
  • jdk.attach:提供Attach API,允许JConsole附加到目标JVM进程,这是本地进程连接的核心基础能力。

示例jlink构建命令

将这些模块加入你的jlink命令中,示例如下(Windows平台可调整路径格式):

jlink --module-path "%JAVA_HOME%\jmods";.\your-app-modules \
      --add-modules java.base,java.management,jdk.management,jdk.management.jfr,jdk.internal.jvmstat,jdk.attach \
      --output custom-runtime

额外注意事项

  1. 如果你的应用是模块化项目,需要在module-info.java中声明对这些模块的依赖:
    module your.app.module {
        requires java.management;
        requires jdk.management;
        requires jdk.management.jfr;
        requires jdk.internal.jvmstat;
        requires jdk.attach;
    }
    
  2. 构建完成后,检查自定义镜像的bin目录(Windows下为<custom-runtime>\bin),确认management_ext.dll已存在,这是验证模块是否正确添加的直观方式。
  3. 启动应用时无需额外JMX参数(本地连接默认启用),但如果需要远程连接,仍需配置com.sun.management.jmxremote相关参数。

内容的提问来源于stack exchange,提问作者Martin Herbst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:20:46