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

yguard 3.0.0混淆Java17项目报Unsupported class file major version 61如何解决

问题根因

Unsupported class file major version 61 本质是当前使用的yGuard 3.0.0内置的ASM字节码解析库版本过低,不支持Java 17编译生成的字节码,可按以下步骤排查解决:


解决方案

  • 优先升级yGuard版本
    yGuard 3.0.0最高仅支持Java 16的字节码解析,官方从4.0版本开始正式支持Java 17,直接替换yGuard的jar包为最新4.x版本即可,现有ANT混淆配置无需做额外修改,就能直接兼容Java 17字节码。

  • 排查编译链路的字节码版本(如果暂时不想升级yGuard)
    仅修改Eclipse工作区编译器合规级别不生效是因为ANT编译任务独立于IDE配置,需要做两处确认:

    1. 检查ANT打包的javac任务配置,是否显式指定了编译参数,确保添加三个参数:source="11" target="11" release="11",release参数是Java 9后新增的,仅配置source和target可能仍会生成包含高版本特性的字节码
    2. 确认执行ANT任务时使用的JDK版本,如果ANT运行在OpenJDK 17环境下,javac默认会生成JDK 17版本的字节码,需要把ANT的运行时JDK切换为JDK 11
  • 排查依赖包的字节码版本
    检查<externalclasses>标签下引入的所有第三方依赖包,是否存在用JDK 17编译生成的class文件,可以通过javap -v your.class 命令查看class的主版本号,如有则替换为兼容JDK 11的低版本依赖包,或者升级yGuard到4.x版本兼容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:27:04