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

运行在JDK11上的Scala 2.11.12/2.12.14能否生成JDK11目标字节码?

核心结论
  • Scala 2.11.12 无法生成JDK11目标的字节码,你遇到的参数报错是正常现象。2.11.x是老旧版本系列,2.11.12作为该系列最终版本,编译器支持的最高JVM目标版本就是1.8,仅支持-target:jvm-1.8参数,没有对应JDK11的参数选项。
  • Scala 2.12.14 支持生成JDK11目标的字节码,参数写法为-target:jvm-11,注意不要写成jvm-1.11。该支持从Scala 2.12.13版本开始正式引入,2.12.14完全继承了该能力。

提示:就算你升级到Scala 2.12.14并生成JDK11字节码,你依赖的Spark 2.4.2本身并不官方支持JDK11运行环境,强行修改字节码目标版本会触发更多未知兼容问题,得不偿失。

场景适配建议

你当前的使用方案已经是最适配的选择:

  • 保持scala-maven-plugin的-target:jvm-1.8配置不变,JDK11完全兼容Java 8版本的字节码(版本号52),不会有功能问题
  • 按你已经验证的方案,将依赖的xbean-asm6-shaded包强制升级到4.10版本,解决Spark内置旧ASM库识别高字节码版本报错的问题即可,不需要额外修改其他编译配置。

内容的提问来源于stack exchange,提问作者Анатолий Сивенко

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:27:03