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

构建带JMX支持的ARM Gnueabi OpenJDK11 JRE及启动报错解决

解决ARM Gnueabi平台OpenJDK 11 JMX/JStatd启动错误及最小模块集方案

核心解决方法

之前用minimal模式构建OpenJDK 11时,该模式会裁剪掉JMX相关的底层VM支持,导致-Dcom.sun.management参数无法被识别。将构建配置切换为client模式后,问题即可解决。

错误原因说明

minimal构建模式为极致精简,会禁用非核心的管理扩展(包括com.sun.management相关功能)——哪怕通过jlink打包了所有模块,VM层面的支持已经被移除,因此会抛出-Dcom.sun.management is not supported in this VM.错误。

JMX/JStatd最小依赖模块集

针对嵌入式设备内存有限的需求,以下是支持JMX和JStatd的最小模块集合:

  • java.base:Java核心基础模块,必须包含
  • java.management:JMX核心API模块
  • java.management.rmi:JMX的RMI远程通信支持
  • java.rmi:RMI基础功能模块
  • jdk.jstatd:JStatd工具依赖模块
  • jdk.management.agent:JMX远程代理模块
  • java.logging:可选,但建议包含,便于排查运行日志
  • jdk.attach:部分JMX功能依赖的附加工具支持

对应的jlink构建命令:

sudo qemu-arm -L /usr/arm-linux-gnueabi jdk/bin/jlink --no-header-files --no-man-pages --module-path jmods --compress=2 --add-modules java.base,java.management,java.management.rmi,java.rmi,jdk.jstatd,jdk.management.agent,java.logging,jdk.attach --output jre_jmx_minimal

启动验证

使用上述最小化JRE启动程序时,添加JMX参数即可正常运行:

java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8855 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false YourMainClass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 21:10:26