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

升级JDK17至21后IntelliJ运行JUnit测试遇Java动态代理加载警告

JDK 21升级后JUnit测试出现ByteBuddy动态Agent警告的解决办法

快速屏蔽警告

  • 添加JVM参数 -XX:+EnableDynamicAgentLoading,直接消除该警告(适合确认是合法工具加载Agent的场景)
    • Maven项目:在maven-surefire-plugin中配置参数
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
              <argLine>-XX:+EnableDynamicAgentLoading</argLine>
          </configuration>
      </plugin>
      
    • Gradle项目:在test任务中添加JVM参数
      test {
          jvmArgs '-XX:+EnableDynamicAgentLoading'
      }
      

根治问题(推荐)

你的警告来自旧版ByteBuddy(1.14.9),它的Agent加载方式不符合JDK 21的新规范。升级到ByteBuddy 1.14.10及以上版本即可解决,新版本已适配JDK 21的Agent加载规则:

  • Maven项目更新依赖:
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy</artifactId>
        <version>1.14.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.bytebuddy</groupId>
        <artifactId>byte-buddy-agent</artifactId>
        <version>1.14.10</version>
        <scope>test</scope>
    </dependency>
    
  • Gradle项目更新依赖:
    testImplementation 'net.bytebuddy:byte-buddy:1.14.10'
    testImplementation 'net.bytebuddy:byte-buddy-agent:1.14.10'
    

排查Agent加载来源

如果不确定是否是ByteBuddy导致的,添加JVM参数 -Djdk.instrument.traceUsage,运行测试后会输出详细的Agent加载调用栈,帮你定位具体触发组件,再针对性处理。

内容的提问来源于stack exchange,提问作者Abhijit Mondal Abhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:36:03